This commit is contained in:
Keven 2025-12-09 14:18:31 -03:00
parent 52d16a1548
commit 2f891ffc38
2 changed files with 12 additions and 20 deletions

View file

@ -3,49 +3,41 @@
# ============================
FROM node:20-alpine AS builder
# Define diretório de trabalho
WORKDIR /app
# Copia os arquivos de dependência
COPY package*.json ./
# Instala dependências (usando cache eficiente)
RUN npm ci
# Copia o restante do código
COPY . .
# Garante o ambiente de produção durante o build
# Garante build de produção
ENV NODE_ENV=production
# Gera o build de produção
RUN npm run build
# =============================
# STAGE 2 Imagem de Produção
# STAGE 2 Produção (Runner)
# =============================
FROM node:20-alpine AS runner
# Define o ambiente de produção explicitamente
WORKDIR /app
# Força modo produção
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
# Cria diretório da aplicação
WORKDIR /app
# Copia apenas o necessário da build
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/.next ./.next
# 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
# Usuário não-root por segurança
# Segurança: executa como usuário não-root
RUN addgroup -S nodejs && adduser -S nextjs -G nodejs
USER nextjs
# Expõe a porta padrão do Next.js
# Porta padrão
EXPOSE 3000
# Força o modo produção, mesmo que o painel envie NODE_ENV errado
# Comando fixo (força produção)
CMD ["sh", "-c", "NODE_ENV=production npm start"]

View file

@ -6,7 +6,7 @@
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start -p 3000",
"start": "next start",
"lint": "next lint"
},
"dependencies": {