# ─── Stage 1: Build ────────────────────────────────────────────────────────── FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --legacy-peer-deps COPY . . RUN npx prisma generate RUN npm run build # ─── Stage 2: Production ───────────────────────────────────────────────────── FROM node:20-alpine AS production WORKDIR /app ENV NODE_ENV=production COPY package*.json ./ RUN npm ci --omit=dev --legacy-peer-deps COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma COPY --from=builder /app/prisma ./prisma EXPOSE 3051 CMD ["node", "dist/main.js"]