From 80f1ecea84b8ed41e642fbc2c22658480c030f12 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Thu, 19 Oct 2023 14:27:45 +0300 Subject: [PATCH] Added start/stop/restart docker containers runner on python --- start/restart.backend.docker.py | 16 ++++++++++++++++ start/start.backend.docker.py | 15 +++++++++++++++ start/stop.backend.docker.py | 27 ++++++++++----------------- 3 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 start/restart.backend.docker.py create mode 100644 start/start.backend.docker.py diff --git a/start/restart.backend.docker.py b/start/restart.backend.docker.py new file mode 100644 index 0000000000..534fc24a60 --- /dev/null +++ b/start/restart.backend.docker.py @@ -0,0 +1,16 @@ +#!/usr/bin/python3 + +import subprocess +import time +import os + +rd = os.path.dirname(__file__) + +start = time.time() + +print("Restart all backend services (containers)") +subprocess.run(["python", os.path.join(rd, "stop.backend.docker.py")]) +subprocess.run(["python", os.path.join(rd, "start.backend.docker.py")]) + +end = time.time() +print("\nElapsed time", end - start) \ No newline at end of file diff --git a/start/start.backend.docker.py b/start/start.backend.docker.py new file mode 100644 index 0000000000..6e994af59f --- /dev/null +++ b/start/start.backend.docker.py @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +import subprocess +import time + +start = time.time() +container_ids = subprocess.check_output("docker ps -aq -f label=com.docker.compose.project=docker", encoding='utf-8') +containers = container_ids.strip().split() + +if containers: + print("Start all backend services (containers)") + subprocess.run(['docker', 'start'] + containers, check=True) + +end = time.time() +print("\nElapsed time", end - start) \ No newline at end of file diff --git a/start/stop.backend.docker.py b/start/stop.backend.docker.py index 85759dab84..4666b59c67 100755 --- a/start/stop.backend.docker.py +++ b/start/stop.backend.docker.py @@ -1,24 +1,17 @@ #!/usr/bin/python3 import subprocess +import time -# Execute command to find and filter containers -containers = subprocess.check_output(['docker', 'ps', '-a', '-f', 'label=com.docker.compose.project=docker', '--format={{.ID}}'], text=True).rstrip().split('\n') +start = time.time() +container_ids = subprocess.check_output("docker ps -q -f label=com.docker.compose.project=docker", encoding='utf-8') +containers = container_ids.strip().split() -print(containers) - -#containers = [line.split(' ')[0] for line in output.split('\n') if line and not any(keyword in line for keyword in ["mysql", "rabbitmq", "redis", "elasticsearch", "documentserver"])] - -if not containers: +if containers: + print("Stop all backend services (containers)") + subprocess.run(['docker', 'stop'] + containers, check=True) +else: print("No containers to stop") - exit() -print("Stop all backend services (containers)") -for c in containers: - if not c: - continue - - subprocess.run(['docker', 'stop', c]) - -#print("Stop all backend services (containers)") -#subprocess.run(['docker', 'stop', containers]) +end = time.time() +print("\nElapsed time", end - start)