Este documento descreve a configuração Docker otimizada para o frontend do projeto Varion.
- Node.js 22 Alpine: Versão mais recente e otimizada
- Multi-stage build: Reduz significativamente o tamanho da imagem final
- Standalone output: Next.js standalone para melhor performance em containers
- Build cache otimizado: Utiliza BuildKit para builds mais rápidos
- Health checks: Monitoramento automático da saúde da aplicação
- Usuário não-root: Aplicação roda com usuário
nextjs(UID 1001) - Minimal dependencies: Apenas dependências necessárias na imagem final
- Security scanning ready: Compatível com ferramentas como Trivy
- Hot reload: Configuração específica para desenvolvimento
- Volume mounting: Arquivos locais sincronizados para desenvolvimento
- Environment separation: Configurações distintas para dev/prod
Dockerfile: Build de produção otimizadodocker-compose.yml: Configuração de produçãodocker-compose.dev.yml: Configuração de desenvolvimento.dockerignore: Otimização do contexto de buildscripts/build-docker.sh: Script automatizado de build
# Iniciar ambiente de desenvolvimento
docker-compose -f docker-compose.dev.yml up
# Build apenas do frontend em desenvolvimento
docker-compose -f docker-compose.dev.yml build frontend# Build e start completo
docker-compose up --build
# Build apenas do frontend
docker-compose build frontend
# Usando o script otimizado
./frontend/scripts/build-docker.sh
# Build com limpeza e execução
./frontend/scripts/build-docker.sh --clean --runNODE_ENV=productionNEXT_TELEMETRY_DISABLED=1PORT=3000HOSTNAME=0.0.0.0
NODE_ENV=developmentWATCHPACK_POLLING=trueCHOKIDAR_USEPOLLING=true
O frontend inclui um endpoint de health check:
# Verificar saúde da aplicação
curl http://localhost:3000/api/healthResposta esperada:
{
"status": "healthy",
"timestamp": "2025-06-13T10:30:00.000Z",
"uptime": 123.45,
"environment": "production",
"version": "1.0.0"
}# Ver logs do frontend
docker-compose logs -f frontend
# Executar comando no container
docker-compose exec frontend sh
# Rebuild sem cache
docker-compose build --no-cache frontend
# Ver estatísticas de recursos
docker stats varion_frontend
# Inspecionar imagem
docker inspect varion-frontend:latest- Interval: 30s
- Timeout: 10s
- Retries: 3
- Start period: 40s
# Logs em tempo real
docker-compose logs -f frontend
# Logs com timestamp
docker-compose logs -t frontend- Verificar se Docker está rodando
- Limpar cache:
docker system prune -f - Rebuild sem cache:
docker-compose build --no-cache frontend
- Verificar logs:
docker-compose logs frontend - Verificar health check:
curl http://localhost:3000/api/health - Verificar portas:
docker port varion_frontend
- Verificar recursos:
docker stats varion_frontend - Ajustar limits no docker-compose.yml
- Verificar logs de erro
- Implementar cache Redis para sessions
- Adicionar métricas Prometheus
- Configurar log aggregation
- Implementar rolling updates
- Adicionar backup automatizado
Para contribuir com melhorias no Docker setup:
- Teste as mudanças localmente
- Documente as alterações
- Atualize este README se necessário
- Execute os health checks
- Submeta PR com descrição detalhada