From 3abde1e7cd52170010bf85157904fe5f6c939c5a Mon Sep 17 00:00:00 2001 From: Kenio de Souza Date: Fri, 12 Sep 2025 13:51:27 -0300 Subject: [PATCH] feat(Dockerfile): Ajustando Dockerfile --- Dockerfile | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index a87dcbb..2f707e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] \ No newline at end of file