diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bbaca32 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# 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"] \ No newline at end of file