diff --git a/Dockerfile b/Dockerfile index cae3709..e892450 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,24 +2,23 @@ # STAGE 1: Build da aplicação # ============================== FROM node:20-alpine AS builder - WORKDIR /app -# Configuração de proxy (opcional) +# Configurações de proxy (opcionais) ARG HTTP_PROXY ARG HTTPS_PROXY ENV NPM_CONFIG_HTTP_PROXY=$HTTP_PROXY ENV NPM_CONFIG_HTTPS_PROXY=$HTTPS_PROXY ENV NPM_CONFIG_TIMEOUT=600000 -# Copia arquivos de dependências e instala +# Copia dependências e instala COPY package.json package-lock.json ./ RUN npm ci --include=dev --legacy-peer-deps -# Copia todo o código do projeto +# Copia o restante do código COPY . . -# Define ambiente e compila sem criar arquivos adicionais +# Define ambiente e compila ENV NODE_ENV=production RUN npm run build -- --no-lint @@ -29,17 +28,16 @@ RUN npm run build -- --no-lint FROM node:20-alpine AS runner WORKDIR /app -# Instala ferramentas básicas +# Instala utilitários úteis para debug RUN apk add --no-cache nano curl # Cria usuário não-root RUN addgroup -g 1001 nodejs && adduser -u 1001 -G nodejs -s /bin/sh -D nodejs -# Copia apenas o necessário da build +# Copia apenas o necessário para execução COPY --from=builder --chown=nodejs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nodejs:nodejs /app/.next/static ./.next/static COPY --from=builder --chown=nodejs:nodejs /app/public ./public -COPY --from=builder --chown=nodejs:nodejs /app/src/config ./src/config USER nodejs @@ -49,4 +47,5 @@ ENV HOSTNAME=0.0.0.0 EXPOSE 3000 +# Inicia o servidor standalone CMD ["node", "server.js"]