feat(DockerFileNextConfig): Ajustando Dockerfile + next.config.ts
This commit is contained in:
parent
cb066a514b
commit
3c033c2c44
2 changed files with 17 additions and 18 deletions
32
Dockerfile
32
Dockerfile
|
|
@ -1,42 +1,40 @@
|
|||
# Etapa 1: Construir a aplicação
|
||||
# Etapa 1: Construção da aplicação
|
||||
# Use uma imagem Node.js completa para instalar as dependências e construir a aplicação
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
# Define o diretório de trabalho
|
||||
# Define o diretório de trabalho dentro do container
|
||||
WORKDIR /app
|
||||
|
||||
# Copia os arquivos de configuração do pacote
|
||||
COPY package.json package-lock.json ./
|
||||
|
||||
# Instala as dependências, incluindo as de desenvolvimento
|
||||
# Instala as dependências do projeto
|
||||
RUN npm install
|
||||
|
||||
# Copia o restante do código da aplicação
|
||||
# Copia todo o código da sua aplicação para o container
|
||||
COPY . .
|
||||
|
||||
# Constrói a aplicação com o output 'standalone'
|
||||
# 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.
|
||||
RUN npm run build
|
||||
|
||||
# Etapa 2: Executar a aplicação
|
||||
# Usa uma imagem Node.js leve
|
||||
# Etapa 2: Execução da aplicação
|
||||
# Use uma imagem Node.js minimalista para o ambiente de produção
|
||||
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'
|
||||
# Copia a pasta "standalone" gerada na etapa de build,
|
||||
# que contém o servidor, as dependências e os arquivos compilados
|
||||
COPY --from=builder /app/.next/standalone ./
|
||||
|
||||
# Copia os arquivos públicos
|
||||
# Copia a pasta 'public' que contém assets estáticos
|
||||
COPY --from=builder /app/public ./public
|
||||
|
||||
# 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
|
||||
# Define a porta que a aplicação irá expor
|
||||
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 para iniciar o servidor Next.js em produção
|
||||
# O "server.js" é o servidor otimizado gerado no modo 'standalone'
|
||||
CMD ["node", "server.js"]
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
import type { NextConfig } from "next";
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
/* config options here */
|
||||
// Isso gera um diretório otimizado que inclui tudo o que a aplicação precisa para rodar
|
||||
output: 'standalone',
|
||||
};
|
||||
|
||||
export default nextConfig;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue