Skip to content

Latest commit

 

History

History
162 lines (120 loc) · 3.9 KB

File metadata and controls

162 lines (120 loc) · 3.9 KB

Docker Frontend - Varion

Este documento descreve a configuração Docker otimizada para o frontend do projeto Varion.

🚀 Melhorias Implementadas

Performance e Otimização

  • 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

Segurança

  • 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

Desenvolvimento

  • Hot reload: Configuração específica para desenvolvimento
  • Volume mounting: Arquivos locais sincronizados para desenvolvimento
  • Environment separation: Configurações distintas para dev/prod

📁 Arquivos Importantes

  • Dockerfile: Build de produção otimizado
  • docker-compose.yml: Configuração de produção
  • docker-compose.dev.yml: Configuração de desenvolvimento
  • .dockerignore: Otimização do contexto de build
  • scripts/build-docker.sh: Script automatizado de build

🛠️ Como Usar

Desenvolvimento

# 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

Produção

# 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 --run

🔧 Configurações de Ambiente

Produção

  • NODE_ENV=production
  • NEXT_TELEMETRY_DISABLED=1
  • PORT=3000
  • HOSTNAME=0.0.0.0

Desenvolvimento

  • NODE_ENV=development
  • WATCHPACK_POLLING=true
  • CHOKIDAR_USEPOLLING=true

📊 Health Check

O frontend inclui um endpoint de health check:

# Verificar saúde da aplicação
curl http://localhost:3000/api/health

Resposta esperada:

{
  "status": "healthy",
  "timestamp": "2025-06-13T10:30:00.000Z",
  "uptime": 123.45,
  "environment": "production",
  "version": "1.0.0"
}

🐳 Comandos Docker Úteis

# 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

📈 Monitoramento

Health Checks

  • Interval: 30s
  • Timeout: 10s
  • Retries: 3
  • Start period: 40s

Logs

# Logs em tempo real
docker-compose logs -f frontend

# Logs com timestamp
docker-compose logs -t frontend

🔍 Troubleshooting

Build Falha

  1. Verificar se Docker está rodando
  2. Limpar cache: docker system prune -f
  3. Rebuild sem cache: docker-compose build --no-cache frontend

Container não inicia

  1. Verificar logs: docker-compose logs frontend
  2. Verificar health check: curl http://localhost:3000/api/health
  3. Verificar portas: docker port varion_frontend

Performance Issues

  1. Verificar recursos: docker stats varion_frontend
  2. Ajustar limits no docker-compose.yml
  3. Verificar logs de erro

📋 Next Steps

  • Implementar cache Redis para sessions
  • Adicionar métricas Prometheus
  • Configurar log aggregation
  • Implementar rolling updates
  • Adicionar backup automatizado

🤝 Contribuição

Para contribuir com melhorias no Docker setup:

  1. Teste as mudanças localmente
  2. Documente as alterações
  3. Atualize este README se necessário
  4. Execute os health checks
  5. Submeta PR com descrição detalhada