# Build stage FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ COPY prisma ./prisma/ RUN npm ci # Generate Prisma client (dummy DATABASE_URL for build time only) RUN DATABASE_URL="postgresql://user:pass@localhost:5432/db" npx prisma generate # Copy source code COPY . . # Build TypeScript RUN npm run build # Production stage FROM node:20-alpine WORKDIR /app COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/package*.json ./ ENV NODE_ENV=production EXPOSE 3000 CMD ["npm", "run", "start:prod"]