# Use a Node.js Alpine image for the builder stage FROM node:lts-alpine AS builder WORKDIR /app COPY package*.json ./ COPY pnpm-lock.yaml ./ COPY pnpm-workspace.yaml ./ ENV CI=true RUN npm i -g pnpm RUN pnpm ci COPY . . RUN pnpm build RUN pnpm prune --prod # Use another Node.js Alpine image for the final stage FROM node:lts-alpine WORKDIR /app COPY --from=builder /app/build build/ COPY --from=builder /app/prisma prisma/ COPY --from=builder /app/prisma.config.ts prisma.config.ts COPY --from=builder /app/node_modules node_modules/ COPY package.json . EXPOSE 3000 ENV NODE_ENV=production VOLUME /data CMD ["node", "build"]