# ============================ # STAGE 1 – Build da aplicação # ============================ FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . # Garante build de produção ENV NODE_ENV=production RUN npm run build # ============================= # STAGE 2 – Produção (Runner) # ============================= FROM node:20-alpine AS runner WORKDIR /app # Força modo produção ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 # Copia somente o necessário COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/package*.json ./ COPY --from=builder /app/next.config.* ./ COPY --from=builder /app/node_modules ./node_modules # Segurança: executa como usuário não-root RUN addgroup -S nodejs && adduser -S nextjs -G nodejs USER nextjs # Porta padrão EXPOSE 3000 # Comando fixo (força produção) CMD ["sh", "-c", "NODE_ENV=production npm start"]