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?

  • Is there any way to obtain detailed logging info when executing 'docker stack deploy'?
  • Docker can't connect to the internet from with proxy
  • How to make a docker image with a populated database for automated tests?
  • Use environment variables in docker
  • How do I get host networking to work with docker swarm mode
  • docker spring-boot application accessible only on 172.17 ip
  • Static webpage on Nginx Docker Container Missing CSS
  • How to connect to mysql created by docker-compose
  • Error connecting to VPN within Docker container
  • Docker compose variables
  • pytest: environment variable to specify pytest.ini location
  • npm install with a docker-compose project
  • 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.