From 386b8b0307b38a74ad19fa80668a22712c592945 Mon Sep 17 00:00:00 2001 From: Keven Date: Tue, 9 Dec 2025 13:04:37 -0300 Subject: [PATCH] fix(Dockerfile): Ajusta o dockerfile --- Dockerfile | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index e892450..09de7f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,22 +4,22 @@ FROM node:20-alpine AS builder WORKDIR /app -# Configurações de proxy (opcionais) +# Define ambiente e proxy (opcional) +ENV NODE_ENV=production 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 dependências e instala +# Copia dependências e instala apenas as necessárias para build COPY package.json package-lock.json ./ -RUN npm ci --include=dev --legacy-peer-deps +RUN npm ci --omit=dev --legacy-peer-deps # Copia o restante do código COPY . . -# Define ambiente e compila -ENV NODE_ENV=production +# Compila aplicação Next.js RUN npm run build -- --no-lint # ============================== @@ -28,24 +28,31 @@ RUN npm run build -- --no-lint FROM node:20-alpine AS runner WORKDIR /app -# Instala utilitários úteis para debug -RUN apk add --no-cache nano curl +# Instala utilitários básicos para inspeção e debug +RUN apk add --no-cache nano curl tzdata + +# Configura timezone (América/São Paulo) +ENV TZ=America/Sao_Paulo # 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 para execução +# Copia apenas o necessário do build 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 USER nodejs +# Configura variáveis de ambiente ENV NODE_ENV=production ENV PORT=3000 ENV HOSTNAME=0.0.0.0 EXPOSE 3000 +# Healthcheck automático (5s de intervalo, falha após 3 tentativas) +HEALTHCHECK --interval=5s --timeout=3s --retries=3 CMD curl -f http://localhost:3000/ || exit 1 + # Inicia o servidor standalone CMD ["node", "server.js"]