Aller au contenu principal

🐳 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

ServiceURLDescription
API Gatewayhttp://localhost:3005Point d'entrée principal
Health Checkhttp://localhost:3005/healthVérification de santé
Adminer (DB)http://localhost:8080Interface d'administration DB
MySQLlocalhost:3340Base 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.