This commit is contained in:
Keven 2025-12-09 14:06:21 -03:00
parent cdc5e953a5
commit 26df474611

View file

@ -1,22 +1,47 @@
# ============================== # ============================
# STAGE 1: Build da aplicação # STAGE 1 Build da aplicação
# ============================== # ============================
FROM node:20-alpine AS builder FROM node:20-alpine AS builder
# Define diretório de trabalho
WORKDIR /app WORKDIR /app
ENV NODE_ENV=production # Copia os arquivos de dependência
ARG HTTP_PROXY COPY package*.json ./
ARG HTTPS_PROXY
ENV NPM_CONFIG_HTTP_PROXY=$HTTP_PROXY
ENV NPM_CONFIG_HTTPS_PROXY=$HTTPS_PROXY
ENV NPM_CONFIG_TIMEOUT=600000
# Copia e instala dependências completas (inclui devDependencies) # Instala dependências
COPY package.json package-lock.json ./ RUN npm ci
RUN npm ci --legacy-peer-deps
# Copia o código # Copia todo o código da aplicação
COPY . . COPY . .
# Compila aplicação Next.js # Gera o build de produção
RUN npm run build -- --no-lint RUN npm run build
# =============================
# STAGE 2 Imagem de Produção
# =============================
FROM node:20-alpine AS runner
# Define o ambiente
ENV NODE_ENV=production
# Cria diretório da aplicação
WORKDIR /app
# Copia apenas os arquivos necessários do build anterior
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/next.config.* ./
COPY --from=builder /app/node_modules ./node_modules
# Define usuário não-root por segurança
RUN addgroup -S nodejs && adduser -S nextjs -G nodejs
USER nextjs
# Porta padrão do Next.js (pode ser alterada via variável)
EXPOSE 3000
# Comando para rodar a aplicação
CMD ["npm", "start"]