2016-07-14 11 views
4

Ist es möglich, Container in Docker-Compose neu zu starten, wenn Dienst, der darin ausgeführt wird, Exit-Code anders als 0 zurückgibt? docker-compose.yml Option restart: always funktioniert nicht so. Gibt es eine Möglichkeit, es zu lösen, oder ist dies ein Service-Problem und ich sollte nach der Antwort innerhalb des Containers suchen?docker-compose Neustart Container, wenn Dienst ist tot

Ich benutze supervisord aber das Hinzufügen Option autorestart=true nicht einmal, wenn der Service Abstürze mit Exit-Code 255 funktioniert - die RUNNING_PID Datei (vom System erstellt) nicht gelöscht wird.

Danke für jede Antwort.

Antwort

2

'neustart: always' startet den Container unabhängig vom Exit-Code neu, selbst wenn der Exit-Code des im Container ausgeführten Prozesses '0' ist. Ich benutze 'Neustart: on-failure' und es tut genau das, was du beschreibst. Es startet den Container erneut mit einem Exit-Code ungleich 0 des Prozesses. Nachdem der Prozess beendet ist und es nicht neu gestartet wird, können Sie den Exit-Code mit 'docker-compose ps' überprüfen

+0

Danke für die Antwort, aber mein Fall ist ein wenig anders - auch wenn der Dienst mit Code ungleich 0, der Container doesn Zeige es nicht (es ist immer noch als Hoch in Docker-Compose ps markiert). – Thomas

+0

ref https://docs.docker.com/compose/compose-file/#restart_policy –

+0

v2 ref https://docs.docker.com/compose/compose-file/compose-file-v2/#restart –