# ---- deps ---- FROM node:18-alpine AS deps WORKDIR /app COPY package*.json ./ # Für reproduzierbare Builds: CI bevorzugt RUN npm ci # ---- builder ---- FROM node:18-alpine AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # Falls du Prisma o.ä. verwendest, optional vor dem Build: # RUN npx prisma generate RUN npm run build # ---- runner (Variante A: Standard "npm start") ---- # Nutze diese Runner-Stufe, wenn du KEIN 'output: standalone' hast: FROM node:18-alpine AS runner WORKDIR /app ENV PORT=3000 COPY --from=builder /app ./ EXPOSE 3000 CMD ["npm", "start"] # ---- runner-standalone (Variante B: Next.js Standalone) ---- # Wenn du in next.config.js 'output: "standalone"' gesetzt hast, # kannst du stattdessen diese Runner-Stufe verwenden und die obere auskommentieren: # FROM node:18-alpine AS runner # WORKDIR /app # ENV NODE_ENV=production # ENV PORT=3000 # COPY --from=builder /app/.next/standalone ./ # COPY --from=builder /app/.next/static ./.next/static # COPY --from=builder /app/public ./public # EXPOSE 3000 # CMD ["node", "server.js"]