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 051397a commit 566690d
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
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.")
exit(1)
exit(1) # Beendet das Skript mit einem Fehlercode, wenn die Variable nicht gesetzt ist

label_key = "ofelia.enabled"
label_value = "true"
Expand All @@ -15,12 +15,12 @@

def restart_container(container_name):
try:
# Filtere Container nach dem Service-Namen
containers = client.containers.list(filters={"label": f"com.docker.compose.service={container_name}"})
for container in containers:
# Restartet den ersten gefundenen Container und beendet dann die Funktion
container.restart()
print(f"Container {container.name} ({container.id}) wurde neu gestartet.")
return # Beendet die Schleife nach dem ersten Neustart
print(f"Container {container.name} wurde neu gestartet.")
return
except APIError as e:
print(f"Fehler beim Neustarten des Containers {container_name}: {e}")

Expand All @@ -30,10 +30,13 @@ def handle_event(event):
container = client.containers.get(container_id)
labels = container.labels

# Überprüfe, ob der Container das spezifische Label hat und nicht der Container ist, der neu gestartet werden soll
if labels.get(label_key) == label_value and container.attrs['Config']['Labels'].get('com.docker.compose.service') != container_name_to_restart:
print(f"Container mit Label {label_key}:{label_value} gestartet: {container.name}")
restart_container(container_name_to_restart)
# Überprüfe, ob das Label vorhanden ist
if labels.get(label_key) == label_value:
container_service_name = container.attrs['Config']['Labels'].get('com.docker.compose.service')
# Überprüfe, ob der gestartete Container nicht der ist, der neu gestartet werden soll
if container_service_name != container_name_to_restart:
print(f"Container mit Label {label_key}:{label_value} gestartet: {container.name}")
restart_container(container_name_to_restart)

def main():
print("Skript läuft und hört auf Container-Ereignisse...")
Expand Down

0 comments on commit 566690d

Please sign in to comment.