1406
This commit is contained in:
parent
cdc5e953a5
commit
26df474611
1 changed files with 40 additions and 15 deletions
55
Dockerfile
55
Dockerfile
|
|
@ -1,22 +1,47 @@
|
||||||
# ==============================
|
# ============================
|
||||||
# STAGE 1: Build da aplicação
|
# STAGE 1 – Build da aplicação
|
||||||
# ==============================
|
# ============================
|
||||||
FROM node:20-alpine AS builder
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
|
# Define diretório de trabalho
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
# Copia os arquivos de dependência
|
||||||
ARG HTTP_PROXY
|
COPY package*.json ./
|
||||||
ARG HTTPS_PROXY
|
|
||||||
ENV NPM_CONFIG_HTTP_PROXY=$HTTP_PROXY
|
|
||||||
ENV NPM_CONFIG_HTTPS_PROXY=$HTTPS_PROXY
|
|
||||||
ENV NPM_CONFIG_TIMEOUT=600000
|
|
||||||
|
|
||||||
# Copia e instala dependências completas (inclui devDependencies)
|
# Instala dependências
|
||||||
COPY package.json package-lock.json ./
|
RUN npm ci
|
||||||
RUN npm ci --legacy-peer-deps
|
|
||||||
|
|
||||||
# Copia o código
|
# Copia todo o código da aplicação
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Compila aplicação Next.js
|
# Gera o build de produção
|
||||||
RUN npm run build -- --no-lint
|
RUN npm run build
|
||||||
|
|
||||||
|
# =============================
|
||||||
|
# STAGE 2 – Imagem de Produção
|
||||||
|
# =============================
|
||||||
|
FROM node:20-alpine AS runner
|
||||||
|
|
||||||
|
# Define o ambiente
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
|
# Cria diretório da aplicação
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copia apenas os arquivos necessários do build anterior
|
||||||
|
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
|
||||||
|
RUN addgroup -S nodejs && adduser -S nextjs -G nodejs
|
||||||
|
USER nextjs
|
||||||
|
|
||||||
|
# Porta padrão do Next.js (pode ser alterada via variável)
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Comando para rodar a aplicação
|
||||||
|
CMD ["npm", "start"]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue