Chaperone is a lean init-style startup manager for Docker-like containers. It runs as a single lightweight full-featured process which runs at the root of a docker container tree and provides all of the following functionality, plus much more:
Monitoring for all processes in the container, automatically shutting down the container when the last process exits.
A complete, configurable syslog facility built in and provided on /dev/log so daemons and other services can have output captured. Configurable to handle log-file rotation, duplication to stdout/stderr, and full Linux logging facility, severity support. No syslog daemon is required in your container.
The ability to start up system services in dependency order, with options for per-service environment variables, restart options, and stdout/stderr capture either to the log service or stdout.
A built-in cron scheduling service.
Emulation of systemd notifications (sd_notify) so services can post ready and status notifications to chaperone.
Process monitoring and zombie elimination, along with organized system shutdown to assure all daemons shut-down gracefully.
The ability to have an optional controlling process, specified on the docker command line, to simplify creating containers which have development mode vs. production mode.
Complete configuration using a chaperone.d directory which can be located in various places, and even allows different configurations within the container, triggered based upon which user is selected at start-up.
Default behavior designed out-of-the-box to work with simple Docker containers for quick start-up for lean containers.... More Info »