2015-11-22 13 views
5

Supervisord ist wirklich ein großartiges Werkzeug, auch für Docker-Umgebung. Es hilft viel mit stderr-Umleitung und Signalweiterleitung. Aber es hat ein paar Nachteile:Alternative zu Supervisor für Docker

  1. Es unterstützt keine verzögerte Inbetriebnahme. Es kann nützlich sein, den Start eines Agenten zu verzögern, bis die Haupt-App initialisiert wird. Priorität löst dieses Problem nicht.
  2. Wenn eine App in den Status FATAL wechselt, wird Supervisord nur protokolliert, funktioniert aber weiterhin. Sie können es also erst sehen, wenn Sie sich die Container-Logs ansehen. Es könnte viel freundlicher, wenn Supervisord nur stoppt, weil in diesem Fall das Problem mit docker ps -a

So was ist die beste Alternative zu supervisord?

Antwort

2

Als Reaktion auf die "PID1 Zombie ernten" -Ausgabe, empfahl ich vor (in "Use of Supervisor in docker") runit instead of supervisord

runit benötigt weniger Speicher zu verwenden, als Supervisord weil runit in C und Supervisord in Python geschrieben.
Und in einigen Anwendungsfällen sind Neustarts von Prozessen im Container vorzuziehen, wenn der gesamte Container neu gestartet wird.

Siehe das phusion/baseimage-docker Bild für mehr.