Alternative to supervisord for docker

Supervisord is really great tool even for docker environment. It helps a lot with stderr redirection and signals forwarding. But it has a couple of disadvantages:

  1. It doesn’t support delayed startup. It could be useful to delay some agent startup until main app is initializing. Priority doesn’t solve this issue.
  2. If some app enters FATAL state supervisord just logs it but continue to work. So you can’t see it until look at logs of container. It could much more friendly if supervisord just stops because in that case you see the problem with docker ps -a

So what is the best alternative to supervisord?

  • neo4j-mazerunner, How to Increase memory size in docker-compose.yml
  • Committing container changes of files generated in /workspace (even using makefile) doesn't persist into new instances of the image
  • Base image for java
  • Data from Dockerfile RUN step not in image
  • How to find out who references a given volume?
  • Does the Docker remote API have an equivalent for “docker run --rm …”?
  • Nginx Load Balancing Upstream proxy
  • Use --build-arg value in Dockerfile FROM parameter
  • Running docker image in command line: running into errors after copy+pasting code
  • Load balancing Docker Registry v2 with HAProxy on Tutum
  • Host/Deploy ASP.NET MVC to docker using linux container
  • Gitlab CI : Deploy php codes into docker image as production
  • One Solution collect form web for “Alternative to supervisord for docker”

    In response to the “PID1 zombie reaping” issue, I recommended before (in “Use of Supervisor in docker”) to use runit instead of supervisord

    Runit uses less memory than Supervisord because Runit is written in C and Supervisord in Python.
    And in some use cases, process restarts in the container are preferable over whole-container restarts.

    See the phusion/baseimage-docker image for more.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.