2015-11-22 24 views
5

Supervisord to naprawdę wspaniałe narzędzie nawet dla środowiska docker. Bardzo pomaga w przekierowaniu stderr i przekazywaniu sygnałów. Ma jednak kilka wad:Alternatywa dla supervisora ​​dla docker

  1. Nie obsługuje opóźnionego uruchamiania. Przydatne może być opóźnienie uruchamiania niektórych agentów do czasu zainicjowania głównej aplikacji. Priorytet nie rozwiązuje tego problemu.
  2. Jeśli jakaś aplikacja wchodzi do nadzorcy stanu FATAL, loguje się tylko, ale nadal działa. Więc nie możesz go zobaczyć, dopóki nie spojrzysz na logi kontenera. To może znacznie bardziej przyjazny jeśli supervisord prostu zatrzymuje, ponieważ w tym przypadku widać problem z docker ps -a

Więc co jest najlepszą alternatywą dla supervisord?

Odpowiedz

2

W odpowiedzi na "PID1 zombie czerpania" problem, poleciłem wcześniej (w "Use of Supervisor in docker") do wykorzystania runit instead of supervisord

Runit zużywa mniej pamięci niż Supervisord ponieważ Runit jest napisany w C i Supervisord w Pythonie.
W niektórych przypadkach ponowne uruchomienie procesu w kontenerze jest lepsze niż ponowne uruchomienie całego kontenera.

Zobacz obraz phusion/baseimage-docker, aby uzyskać więcej.