feat(Dockerfile): Ajustando Dockerfile

This commit is contained in:
Kenio 2025-09-12 13:51:27 -03:00
parent 3c033c2c44
commit 3abde1e7cd

View file

@ -1,8 +1,7 @@
# Etapa 1: Construção da aplicação
# Use uma imagem Node.js completa para instalar as dependências e construir a aplicação
# Etapa 1: Construir a aplicação
FROM node:20-alpine AS builder
# Define o diretório de trabalho dentro do container
# Define o diretório de trabalho
WORKDIR /app
# Copia os arquivos de configuração do pacote
@ -11,30 +10,33 @@ COPY package.json package-lock.json ./
# Instala as dependências do projeto
RUN npm install
# Copia todo o código da sua aplicação para o container
# Copia todo o código da aplicação para o container
COPY . .
# Executa o comando de build do Next.js. O "output: 'standalone'" garante que os arquivos
# necessários para o servidor de produção sejam gerados em um diretório específico.
# Constrói a aplicação com o output 'standalone'
RUN npm run build
# Etapa 2: Execução da aplicação
# Use uma imagem Node.js minimalista para o ambiente de produção
# Etapa 2: Executar a aplicação
# Usa uma imagem Node.js leve
FROM node:20-alpine AS runner
# Define o diretório de trabalho
WORKDIR /app
# Copia a pasta "standalone" gerada na etapa de build,
# que contém o servidor, as dependências e os arquivos compilados
# 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'
COPY --from=builder /app/.next/standalone ./
# Copia a pasta 'public' que contém assets estáticos
# Copia os arquivos públicos
COPY --from=builder /app/public ./public
# Define a porta que a aplicação irá expor
# Define variáveis de ambiente, se necessário.
# Por exemplo, se precisar de uma variável NEXT_PUBLIC_API_URL
# ENV NEXT_PUBLIC_API_URL=https://api.meuapp.com
# Expõe a porta padrão do Next.js
EXPOSE 3000
# Comando para iniciar o servidor Next.js em produção
# O "server.js" é o servidor otimizado gerado no modo 'standalone'
# 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
CMD ["node", "server.js"]