Files
ARC/stop_project.py

50 lines
1.7 KiB
Python

import subprocess
import os
import sys
COMPOSE_DIR = "backend"
NETWORK_NAME = "arc-network"
PROJECTS = {
"infra": "arc-infra",
"ai": "arc-ai",
"app": "arc-app"
}
def run_command(command):
"""Exécute une commande système."""
print(f"🚀 Exécution : {' '.join(command) if isinstance(command, list) else command}")
is_windows = os.name == 'nt'
try:
subprocess.run(command, shell=is_windows, check=True)
return True
except subprocess.CalledProcessError:
return False
def main():
print("🛑 Démarrage de l'arrêt complet du projet...")
# 1. Arrêter l'Application
print(f"\n--- ARRÊT DE L'APPLICATION ({PROJECTS['app']}) ---")
run_command(["docker", "compose", "-p", PROJECTS["app"], "-f", f"{COMPOSE_DIR}/docker-compose.yml", "down"])
# 2. Arrêter l'IA
print(f"\n--- ARRÊT DE L'IA ({PROJECTS['ai']}) ---")
run_command(["docker", "compose", "-p", PROJECTS["ai"], "-f", f"{COMPOSE_DIR}/docker-compose-ai.yml", "down"])
# 3. Arrêter l'Infrastructure
print(f"\n--- ARRÊT DE L'INFRASTRUCTURE ({PROJECTS['infra']}) ---")
run_command(["docker", "compose", "-p", PROJECTS["infra"], "-f", f"{COMPOSE_DIR}/docker-compose-infra.yml", "down"])
# 4. Optionnel : Supprimer le réseau
print(f"\n--- NETTOYAGE DU RÉSEAU ---")
# On essaie de supprimer le réseau, si il est utilisé par d'autres conteneurs, Docker ne le supprimera pas.
run_command(["docker", "network", "rm", NETWORK_NAME])
print("\n✅ Tout est arrêté proprement.")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("\n🛑 Arrêt forcé par l'utilisateur.")