fix(Dockerfile): Ajuste de dockerfile para realizar o build da aplicação

This commit is contained in:
Keven Willian Pereira de Souza 2025-09-17 12:12:47 -03:00
parent a0c8420ced
commit 0fd8349c5d
2 changed files with 52 additions and 11 deletions

View file

@ -1,22 +1,41 @@
# Use uma imagem Node.js completa para o desenvolvimento
FROM node:20-alpine
# Etapa 1: Construir a aplicação
FROM node:20-alpine AS builder
# Define o diretório de trabalho no container
# Define o diretório de trabalho
WORKDIR /app
# Copia os arquivos de configuração do projeto
# Copia os arquivos de configuração do pacote
COPY package.json package-lock.json ./
# Instala todas as dependências do projeto
# Isso é necessário para o modo de desenvolvimento, pois o build não pré-compila os arquivos.
# Instala as dependências do projeto
RUN npm install
# Copia o restante do código da sua aplicação
# Copia todo o código da aplicação para o container
COPY . .
# Expõe a porta de desenvolvimento padrão do Next.js
# Constrói a aplicação com o output 'standalone'
RUN npm run build
# 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 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 os arquivos públicos
COPY --from=builder /app/public ./public
# Copia os arquivos estáticos gerados pelo build. É aqui que os arquivos CSS e JS ficam.
COPY --from=builder /app/.next/static ./.next/static
# Expõe a porta padrão do Next.js
EXPOSE 3000
# Define o comando para iniciar a aplicação em modo de desenvolvimento
# Isso ativará o servidor de desenvolvimento e a recarga automática
CMD ["npm", "run", "dev"]
# 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"]

22
Dockerfile-bkp Normal file
View file

@ -0,0 +1,22 @@
# Use uma imagem Node.js completa para o desenvolvimento
FROM node:20-alpine
# Define o diretório de trabalho no container
WORKDIR /app
# Copia os arquivos de configuração do projeto
COPY package.json package-lock.json ./
# Instala todas as dependências do projeto
# Isso é necessário para o modo de desenvolvimento, pois o build não pré-compila os arquivos.
RUN npm install
# Copia o restante do código da sua aplicação
COPY . .
# Expõe a porta de desenvolvimento padrão do Next.js
EXPOSE 3000
# Define o comando para iniciar a aplicação em modo de desenvolvimento
# Isso ativará o servidor de desenvolvimento e a recarga automática
CMD ["npm", "run", "dev"]