docker工人的替代supervisord

Supervisord甚至在docker环境中也是非常棒的工具。 它有助于很多stderrredirect和信号转发。 但它有一些缺点:

  1. 它不支持延迟启动。 延迟一些代理启动直到主应用程序正在初始化可能是有用的。 优先级不解决这个问题。
  2. 如果某个应用程序进入FATAL状态,supervisord只logging它,但继续工作。 所以你看不到它的容器日志。 如果supervisord刚刚停止,它可能会更友好,因为在这种情况下,您会看到docker ps -a的问题

那么,supervisord最好的select是什么?

为了回应“PID1僵尸收割”的问题,我之前build议(在“ 使用 Docker中的主pipe ”中)使用runit而不是supervisord

Runit使用比Supervisord更less的内存,因为Runit是用Python编写的,Supervisord是用Python编写的。
而在某些使用情况下,容器中的进程重新启动优于整个容器重新启动。

有关更多信息,请参阅phusion/baseimage-docker映像。