saas_app/Dockerfile
2025-12-09 14:06:21 -03:00

47 lines
1.1 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================
# STAGE 1 Build da aplicação
# ============================
FROM node:20-alpine AS builder
# Define diretório de trabalho
WORKDIR /app
# Copia os arquivos de dependência
COPY package*.json ./
# Instala dependências
RUN npm ci
# Copia todo o código da aplicação
COPY . .
# 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"]