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
|
||||
|
||||
# Define diretório de trabalho
|
||||
WORKDIR /app
|
||||
|
||||
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 os arquivos de dependência
|
||||
COPY package*.json ./
|
||||
|
||||
# Copia e instala dependências completas (inclui devDependencies)
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci --legacy-peer-deps
|
||||
# Instala dependências
|
||||
RUN npm ci
|
||||
|
||||
# Copia o código
|
||||
# Copia todo o código da aplicação
|
||||
COPY . .
|
||||
|
||||
# Compila aplicação Next.js
|
||||
RUN npm run build -- --no-lint
|
||||
# Gera o build de produção
|
||||
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