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;