🐳 Commandes Docker
Guide complet des commandes Docker Compose pour le déploiement de Commerce Tracking.
📋 Fichiers Docker Compose disponibles
root@srv836141:/etc/tradeflow/src/tradeflow-server# ls *.yml
admin-docker-compose.yml # Admin Service
auth-docker-compose.yml # Auth Service
db-docker-compose.yml # MySQL + Adminer
gateway-docker-compose.yml # API Gateway
model-docker-compose.yml # Model Service
nats-docker-compose.yml # NATS Server
tradeflow-docker-compose.yml # TradeFlow Service
🚀 Démarrage automatique (Recommandé)
Démarrer tout l'écosystème
# Démarrage complet de tous les services
docker-compose -f db-docker-compose.yml -f nats-docker-compose.yml -f auth-docker-compose.yml -f admin-docker-compose.yml -f tradeflow-docker-compose.yml -f model-docker-compose.yml -f gateway-docker-compose.yml up -d
Infrastructure seulement (Base de données + NATS)
# Démarrage de l'infrastructure de base
docker-compose -f db-docker-compose.yml -f nats-docker-compose.yml up -d
Services spécifiques
# Démarrer uniquement les services d'authentification et admin
docker-compose -f auth-docker-compose.yml -f admin-docker-compose.yml up -d
# Démarrer uniquement le service TradeFlow
docker-compose -f tradeflow-docker-compose.yml up -d
🔧 Déploiement manuel étape par étape
1. Infrastructure (obligatoire en premier)
# Base de données MySQL + Adminer
docker-compose -f db-docker-compose.yml up -d
# NATS Server pour la communication
docker-compose -f nats-docker-compose.yml up -d
# Vérifier que l'infrastructure est prête
docker ps
2. Services métier (dans n'importe quel ordre)
# Service d'authentification
docker-compose -f auth-docker-compose.yml up --build -d
# Service d'administration
docker-compose -f admin-docker-compose.yml up --build -d
# Service TradeFlow
docker-compose -f tradeflow-docker-compose.yml up --build -d
# Service Model
docker-compose -f model-docker-compose.yml up --build -d
3. Point d'entrée (API Gateway)
# API Gateway (doit être démarré en dernier)
docker-compose -f gateway-docker-compose.yml up --build -d
📊 Vérification du statut
Statut des containers
# Voir tous les containers en cours d'exécution
docker ps
# Voir tous les containers (arrêtés inclus)
docker ps -a
# Statut spécifique d'un service
docker-compose -f auth-docker-compose.yml ps
Logs en temps réel
# Logs d'un service spécifique
docker-compose -f auth-docker-compose.yml logs -f
# Logs de tous les services
docker logs freetrade-auth-service
docker logs freetrade-admin-service
docker logs freetrade-tradeflow-service
docker logs freetrade-model-service
docker logs freetrade-gateway-api
Health checks
# Vérifier l'API Gateway
curl http://localhost:3005/health
# Vérifier Adminer
curl http://localhost:8080
# Vérifier la base de données
docker exec -it freetrade-mysql mysql -u root -p
🔄 Gestion des services
Redémarrer un service
# Redémarrer un service spécifique
docker-compose -f auth-docker-compose.yml restart
# Redémarrer avec rebuild
docker-compose -f auth-docker-compose.yml up --build -d
Arrêter les services
# Arrêter un service spécifique
docker-compose -f auth-docker-compose.yml down
# Arrêter tous les services
docker-compose -f db-docker-compose.yml -f nats-docker-compose.yml -f auth-docker-compose.yml -f admin-docker-compose.yml -f tradeflow-docker-compose.yml -f model-docker-compose.yml -f gateway-docker-compose.yml down
Nettoyage
# Arrêter et supprimer les containers
docker-compose -f auth-docker-compose.yml down --remove-orphans
# Supprimer les images
docker-compose -f auth-docker-compose.yml down --rmi all
# Nettoyer le système Docker
docker system prune -f
🛠️ Développement et debugging
Accéder à un container
# Accéder au shell d'un service
docker exec -it freetrade-auth-service sh
docker exec -it freetrade-admin-service sh
docker exec -it freetrade-tradeflow-service sh
docker exec -it freetrade-model-service sh
docker exec -it freetrade-gateway-api sh
# Accéder à la base de données
docker exec -it freetrade-mysql mysql -u root -p
Mode développement (avec hot reload)
# Démarrer en mode développement
docker-compose -f auth-docker-compose.yml up --build
# Voir les logs en temps réel
docker-compose -f auth-docker-compose.yml logs -f
🌐 Points d'accès
| Service | URL | Description |
|---|---|---|
| API Gateway | http://localhost:3005 | Point d'entrée principal |
| Health Check | http://localhost:3005/health | Vérification de santé |
| Adminer (DB) | http://localhost:8080 | Interface d'administration DB |
| MySQL | localhost:3340 | Base de données directe |
📈 Monitoring avancé
Métriques des containers
# Utilisation des ressources
docker stats
# Informations détaillées d'un container
docker inspect freetrade-auth-service
# Utilisation de l'espace disque
docker system df
Logs centralisés
# Logs de tous les services avec timestamps
docker-compose -f db-docker-compose.yml -f nats-docker-compose.yml -f auth-docker-compose.yml -f admin-docker-compose.yml -f tradeflow-docker-compose.yml -f model-docker-compose.yml -f gateway-docker-compose.yml logs --timestamps
🔧 Scripts utiles
Script de démarrage rapide
#!/bin/bash
# start-all.sh
echo "🚀 Démarrage de Commerce Tracking..."
# Infrastructure
echo "📊 Démarrage de l'infrastructure..."
docker-compose -f db-docker-compose.yml -f nats-docker-compose.yml up -d
# Attendre que l'infrastructure soit prête
echo "⏳ Attente de l'infrastructure..."
sleep 10
# Services
echo "🔧 Démarrage des services..."
docker-compose -f auth-docker-compose.yml -f admin-docker-compose.yml -f tradeflow-docker-compose.yml -f model-docker-compose.yml up -d
# Gateway
echo "🌐 Démarrage du Gateway..."
docker-compose -f gateway-docker-compose.yml up -d
echo "✅ Commerce Tracking démarré !"
echo "🌐 API Gateway: http://localhost:3005"
echo "🗄️ Adminer: http://localhost:8080"
Script d'arrêt
#!/bin/bash
# stop-all.sh
echo "🛑 Arrêt de Commerce Tracking..."
docker-compose -f gateway-docker-compose.yml -f model-docker-compose.yml -f tradeflow-docker-compose.yml -f admin-docker-compose.yml -f auth-docker-compose.yml -f nats-docker-compose.yml -f db-docker-compose.yml down
echo "✅ Tous les services arrêtés"
Note : Assurez-vous d'avoir Docker et Docker Compose installés avant d'exécuter ces commandes. L'ordre de démarrage est important pour éviter les erreurs de dépendances.