# 1) Base FROM node:18-alpine AS base WORKDIR /app ENV NEXT_TELEMETRY_DISABLED=1 # 2) Deps FROM base AS deps RUN apk add --no-cache libc6-compat COPY package.json package-lock.json ./ RUN npm ci # 3) Builder FROM base AS builder COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production # falls public nicht existiert -> anlegen, damit COPY später nicht crasht RUN mkdir -p public RUN npm run build RUN npm prune --omit=dev # 4) Runner FROM node:18-alpine AS runner WORKDIR /app ENV NODE_ENV=production \ NEXT_TELEMETRY_DISABLED=1 \ PORT=3000 \ HOSTNAME=0.0.0.0 RUN addgroup -S nodejs && adduser -S nextjs -G nodejs # Assets & Build-Output kopieren COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json USER nextjs EXPOSE 3000 CMD ["node_modules/.bin/next", "start", "-p", "3000"]