54 lines
1.8 KiB
Python
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.") |