Skip to content

Commit

Permalink
Check container
Browse files Browse the repository at this point in the history
  • Loading branch information
thueske committed Feb 18, 2024
1 parent 1872bed commit 9939699
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import os
from docker.errors import APIError, NotFound

# Umgebungsvariable auslesen
container_name_to_restart = os.getenv('CONTAINER_NAME_TO_RESTART')
if not container_name_to_restart:
print("Die Umgebungsvariable 'CONTAINER_NAME_TO_RESTART' muss gesetzt sein.")
Expand All @@ -15,12 +14,15 @@

def restart_target_container():
try:
# Listet alle laufenden Container auf und filtert nach dem Service-Namen
containers = client.containers.list(filters={"label": f"com.docker.compose.service={container_name_to_restart}"})
containers = client.containers.list(all=True, filters={"label": f"com.docker.compose.service={container_name_to_restart}"})
if not containers:
print(f"Keine Container gefunden, die dem Service {container_name_to_restart} entsprechen.")
return
for container in containers:
print(f"Versuche, Container {container.name} ({container.id}) neu zu starten...")
container.restart()
print(f"Container {container.name} wurde erfolgreich neu gestartet.")
break # Beendet die Schleife nach dem ersten erfolgreichen Neustart
print(f"Container {container.name} erfolgreich neu gestartet.")
return
except APIError as e:
print(f"Fehler beim Neustarten des Containers: {e}")

Expand All @@ -31,11 +33,8 @@ def handle_event(event):
labels = container.labels

if labels.get(label_key) == label_value:
service_name = container.attrs['Config']['Labels'].get('com.docker.compose.service')
# Überprüft, ob der gestartete Container nicht der Zielcontainer ist
if service_name != container_name_to_restart:
print(f"Container {container.name} mit Label {label_key}:{label_value} gestartet.")
restart_target_container()
print(f"Container {container.name} mit Label {label_key}:{label_value} gestartet.")
restart_target_container()

def main():
print("Lausche auf Container-Ereignisse...")
Expand Down

0 comments on commit 9939699

Please sign in to comment.