feat(): Ajustes para deploy

This commit is contained in:
Kenio 2025-11-10 10:40:20 -03:00
parent 46ccbd2b53
commit dbbd0291d8
2 changed files with 28 additions and 17 deletions

10
.dockerignore Normal file
View file

@ -0,0 +1,10 @@
node_modules
npm-debug.log
Dockerfile
.dockerignore
.git
.gitignore
.env
*.md
.vscode
dist

View file

@ -1,41 +1,42 @@
# Etapa 1: Construir a aplicação
# ========================================================
# Etapa 1: Build da aplicação
# ========================================================
FROM node:20-alpine AS builder
# Define o diretório de trabalho
# Define diretório de trabalho
WORKDIR /app
# Copia os arquivos de configuração do pacote
# Copia arquivos de configuração do pacote
COPY package.json package-lock.json ./
# Instala as dependências do projeto
RUN npm install
# Instala dependências de produção e desenvolvimento
RUN npm ci
# Copia todo o código da aplicação para o container
# Copia todo o código fonte
COPY . .
# Constrói a aplicação com o output 'standalone'
# Gera build standalone
RUN npm run build
# Etapa 2: Executar a aplicação
# Usa uma imagem Node.js leve
# ========================================================
# Etapa 2: Runner (produção)
# ========================================================
FROM node:20-alpine AS runner
# Define o diretório de trabalho
# Define diretório de trabalho
WORKDIR /app
# Copia o diretório 'standalone' da etapa de build, que já contém o servidor e as dependências
# O diretório 'standalone' é a pasta .next/standalone gerada pela configuração 'output: standalone'
# Copia diretório standalone gerado pelo build
COPY --from=builder /app/.next/standalone ./
# Copia os arquivos públicos
# Copia pasta public
COPY --from=builder /app/public ./public
# Copia os arquivos estáticos gerados pelo build. É aqui que os arquivos CSS e JS ficam.
# Copia arquivos estáticos do build
COPY --from=builder /app/.next/static ./.next/static
# Expõe a porta padrão do Next.js
# Expondo porta padrão do Next.js
EXPOSE 3000
# Define o comando para iniciar a aplicação
# O 'start' do package.json não é necessário, o próprio servidor standalone já está no container
# Comando de inicialização do servidor standalone
CMD ["node", "server.js"]