From f4b0118b369ff82872be32c9bdc40ab757b06c04 Mon Sep 17 00:00:00 2001 From: Keven Date: Mon, 8 Dec 2025 11:41:15 -0300 Subject: [PATCH] =?UTF-8?q?deploy(Dockerfile):=20Ajusta=20o=20dockerfile?= =?UTF-8?q?=20para=20produ=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 17 +++-------------- next.config.ts | 14 +++++++++----- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index c47b772..c85f384 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,56 +3,45 @@ # ============================== FROM node:18-alpine AS builder -# Define o diretório de trabalho WORKDIR /app -# Copia apenas os arquivos de dependência primeiro (para cache eficiente) COPY package.json package-lock.json ./ -# Instala TODAS as dependências (inclui devDependencies para build) RUN npm ci --include=dev --legacy-peer-deps -# Copia o restante do código-fonte COPY . . -# 🔧 Garante que o arquivo de configuração exista (fallback seguro) +# 🔧 Garante que o arquivo de configuração exista RUN mkdir -p src/config && \ if [ ! -f src/config/app.json ]; then \ echo '{ "APP_NAME": "Orius SaaS", "API_URL": "https://api.oriustecnologia.com" }' > src/config/app.json; \ fi -# Define ambiente de produção ENV NODE_ENV=production -# Gera o build otimizado do Next.js (sem lint e sem type-check) -RUN npm run build -- --no-lint --no-type-check +# Gera o build otimizado (sem lint, e o type-check será ignorado via config) +RUN npm run build -- --no-lint # ============================== # STAGE 2: Imagem final (produção) # ============================== FROM node:18-alpine AS runner -# Define o diretório de trabalho WORKDIR /app -# Copia apenas os artefatos necessários do build COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public COPY --from=builder /app/src/config ./src/config COPY --from=builder /app/package.json ./package.json -# Define variáveis de ambiente ENV NODE_ENV=production ENV PORT=3000 ENV HOSTNAME=0.0.0.0 -# Cria usuário não-root para segurança RUN addgroup -g 1001 nodejs && adduser -u 1001 -G nodejs -s /bin/sh -D nodejs USER nodejs -# Expõe a porta padrão do Next.js EXPOSE 3000 -# Inicia o servidor standalone do Next.js CMD ["node", "server.js"] diff --git a/next.config.ts b/next.config.ts index 25e0b49..406798a 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,12 +1,16 @@ +/** @type {import('next').NextConfig} */ const nextConfig = { output: 'standalone', - experimental: { runtime: 'nodejs' }, reactStrictMode: true, poweredByHeader: false, compress: true, - swcMinify: true, - eslint: { - ignoreDuringBuilds: true, - }, + + // Desativa ESLint e TypeScript durante o build de produção + eslint: { ignoreDuringBuilds: true }, + typescript: { ignoreBuildErrors: true }, + + // Força runtime Node.js (para evitar Edge Runtime) + experimental: { runtime: 'nodejs' }, }; + module.exports = nextConfig;