# syntax=docker/dockerfile:1 FROM node:22-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npx prisma generate RUN npm run build FROM node:22-alpine AS runtime ENV NODE_ENV=production WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY --from=builder /app/dist ./dist COPY --from=builder /app/generated ./generated # schema.prisma, migrations/ und prisma.config.ts: noetig fuer # `npm run migrate:deploy` (siehe deploy/k8s/backend/migrate-job.yaml), das # dasselbe Image mit ueberschriebenem command nutzt statt eines eigenen # Migrations-Images. COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/prisma.config.ts ./prisma.config.ts EXPOSE 3001 USER node CMD ["node", "dist/main.js"]