diff --git a/Dockerfile b/Dockerfile index 2b78e40..f2b1576 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,35 @@ -# Usa a imagem oficial do Nginx -FROM nginx:alpine +# Etapa 1: Build +FROM node:20-slim AS builder -# Remove configuração default do Nginx -RUN rm /etc/nginx/conf.d/default.conf +# Define diretório de trabalho +WORKDIR /app -# Copia a configuração customizada do Nginx para dentro do container -COPY nginx.conf /etc/nginx/conf.d/ +# Copiar package.json e lock +COPY package*.json ./ -# Copia os arquivos estáticos para a pasta padrão do Nginx -COPY ./build /usr/share/nginx/html +# Instalar dependências +RUN npm install -# Expõe a porta 80 para acesso externo -EXPOSE 80 +# Copiar resto do código para dentro da imagem +COPY . . -# Comando padrão para rodar o Nginx em primeiro plano -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +# Build de produção +RUN npm run build + +# Etapa 2: Production runner +FROM node:20-slim AS runner + +WORKDIR /app + +# Copiar só o necessário +COPY --from=builder /app/package*.json ./ +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public +COPY --from=builder /app/next.config.js ./ +COPY --from=builder /app/node_modules ./node_modules + +# Definir a porta que o Next.js vai usar +EXPOSE 3000 + +# Comando default +CMD ["npm", "start"]