diff --git a/Dockerfile b/Dockerfile index 358ba31..586a1cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,12 +9,15 @@ WORKDIR /app # Copia os arquivos de dependência COPY package*.json ./ -# Instala dependências +# Instala dependências (usando cache eficiente) RUN npm ci -# Copia todo o código da aplicação +# Copia o restante do código COPY . . +# Garante o ambiente de produção durante o build +ENV NODE_ENV=production + # Gera o build de produção RUN npm run build @@ -23,25 +26,26 @@ RUN npm run build # ============================= FROM node:20-alpine AS runner -# Define o ambiente +# Define o ambiente de produção explicitamente ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 # Cria diretório da aplicação WORKDIR /app -# Copia apenas os arquivos necessários do build anterior +# Copia apenas o necessário da build 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 +# 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) +# Expõe a porta padrão do Next.js EXPOSE 3000 -# Comando para rodar a aplicação -CMD ["npm", "start"] +# Força o modo produção, mesmo que o painel envie NODE_ENV errado +CMD ["sh", "-c", "NODE_ENV=production npm start"] diff --git a/next.config.ts b/next.config.ts index 406798a..604d42e 100644 --- a/next.config.ts +++ b/next.config.ts @@ -13,4 +13,4 @@ const nextConfig = { experimental: { runtime: 'nodejs' }, }; -module.exports = nextConfig; +module.exports = nextConfig; \ No newline at end of file diff --git a/package.json b/package.json index fac3244..0a92c08 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "next dev --turbopack", "build": "next build", - "start": "next start", + "start": "next start -p 3000", "lint": "next lint" }, "dependencies": {