Files
zebra-power/DOCKER.md

3.0 KiB

🐳 Docker Configuration - Zebra Power

Images mises à jour

Backend

  • Python 3.13 (version la plus récente)
  • uv pour installation rapide des dépendances
  • 4 workers en production
  • Health checks intégrés

Frontend

  • Node.js 20 (LTS)
  • Build optimisé pour production
  • Health checks intégrés

Nginx

  • Version 1.25
  • Sécurité renforcée
  • Health checks intégrés

Configurations disponibles

🔧 Développement

# Démarrer en mode développement (avec hot reload)
docker-compose -f docker-compose.dev.yml up -d

# Voir les logs
docker-compose -f docker-compose.dev.yml logs -f

# Arrêter
docker-compose -f docker-compose.dev.yml down

Fonctionnalités développement :

  • Auto-reload backend et frontend
  • Volumes montés pour édition en temps réel
  • Ports exposés directement (backend: 8000, frontend: 3000)

🚀 Production

# Démarrer en production (via nginx)
docker-compose up -d

# Voir les logs
docker-compose logs -f

# Arrêter
docker-compose down

Fonctionnalités production :

  • Applications buildées et optimisées
  • Reverse proxy nginx sur port 80
  • Health checks et redémarrages automatiques
  • 4 workers backend pour performance

Commandes utiles

Build des images

# Reconstruire toutes les images
docker-compose build --no-cache

# Reconstruire une image spécifique
docker-compose build backend

Migration des données

# Accéder au container backend
docker exec -it zebra_backend bash

# Lancer la migration 
uv run python migrate_to_unified_hosts.py

Tests

# Tester l'API depuis le container
docker exec -it zebra_backend uv run python test_api.py

Monitoring

# Status des services
docker-compose ps

# Health check status
docker inspect --format='{{.State.Health.Status}}' zebra_backend

# Métriques ressources
docker stats

Structure des volumes

data/
├── zebra.db          # Base de données SQLite
└── backup_*.json     # Sauvegardes migration (si appliquée)

Réseau

Mode Host (Backend)

Le backend utilise network_mode: host pour envoyer les paquets Wake-on-LAN. Ceci est requis pour le fonctionnement WOL.

Ports exposés

  • Production : Port 80 (nginx)
  • Développement :
    • Backend : 8000
    • Frontend : 3000
    • Nginx : 80

Sécurité

  • Tokens nginx cachés (server_tokens off)
  • Health checks pour haute disponibilité
  • Variables d'environnement pour configuration
  • Volumes restreints aux données nécessaires

Dépannage

Backend ne démarre pas

# Vérifier les logs
docker-compose logs backend

# Vérifier les dépendances
docker exec -it zebra_backend uv pip list

Frontend ne compile pas

# Vérifier les logs de build
docker-compose logs frontend

# Rebuild sans cache
docker-compose build --no-cache frontend

WOL ne fonctionne pas

  • Vérifier que network_mode: host est activé pour le backend
  • Tester depuis l'host : wakeonlan 00:11:22:33:44:55