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"]