38 lines
No EOL
1.1 KiB
Docker
38 lines
No EOL
1.1 KiB
Docker
# Etapa 1: Construir a aplicação Next.js
|
|
# Use uma imagem Node.js leve como base
|
|
FROM node:20-alpine AS builder
|
|
|
|
# Defina o diretório de trabalho
|
|
WORKDIR /app
|
|
|
|
# Copie o package.json e o package-lock.json (ou yarn.lock)
|
|
COPY package*.json ./
|
|
|
|
# Instale as dependências do projeto
|
|
RUN npm install
|
|
|
|
# Copie o restante do código fonte da aplicação
|
|
COPY . .
|
|
|
|
# Construa a aplicação Next.js para produção
|
|
RUN npm run build
|
|
|
|
# Etapa 2: Executar a aplicação Next.js
|
|
# Use uma imagem Node.js mais leve para a execução
|
|
FROM node:20-alpine AS runner
|
|
|
|
# Defina o diretório de trabalho
|
|
WORKDIR /app
|
|
|
|
# Copie os artefatos de build da etapa anterior
|
|
COPY --from=builder /app/.next ./.next
|
|
COPY --from=builder /app/node_modules ./node_modules
|
|
COPY --from=builder /app/package.json ./package.json
|
|
COPY --from=builder /app/public ./public
|
|
COPY --from=builder /app/.env ./.env # Copie variáveis de ambiente, se necessário
|
|
|
|
# Expõe a porta em que a aplicação Next.js será executada (padrão é 3000)
|
|
EXPOSE 3000
|
|
|
|
# Comando para iniciar a aplicação em modo de produção
|
|
CMD ["npm", "start"] |