# syntax=docker/dockerfile:1 FROM node:22-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npx next typegen # Qualitaets-Gate: ein Image entsteht nur, wenn Lint, Typecheck und # Unit-Tests gruen sind. RUN npm run lint && npx tsc --noEmit && npm test RUN npm run build FROM node:22-alpine AS runtime ENV NODE_ENV=production WORKDIR /app COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static EXPOSE 3000 USER node CMD ["node", "server.js"]