FROM node:22-alpine AS build
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm run build

FROM node:22-alpine
WORKDIR /app
ENV NODE_ENV=production
RUN apk add --no-cache libreoffice font-noto-cjk \
    && test -x /usr/bin/soffice \
    && /usr/bin/soffice --version
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY --from=build /app/dist ./dist
COPY --from=build /app/server ./server
COPY --from=build /app/sample ./sample
COPY --from=build /app/tsconfig*.json ./
RUN mkdir -p uploads
EXPOSE 3001
CMD ["pnpm", "start"]
