Files
ARC/stop_project.py
2026-07-07 09:57:21 +02:00

54 lines
1.8 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",
"sandbox": "arc-sandbox"
}
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. Arrêter la Sandbox
print(f"\n--- ARRÊT DE LA SANDBOX ({PROJECTS['sandbox']}) ---")
run_command(["docker", "compose", "-p", PROJECTS["sandbox"], "-f", f"{COMPOSE_DIR}/docker-compose-sandbox.yml", "down"])
# 5. Supprimer le réseau
print(f"\n--- NETTOYAGE DU RÉSEAU ---")
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.")