Permalink
Fetching contributors…
Cannot retrieve contributors at this time
59 lines (40 sloc) 1.78 KB

Supervisor Daemon (Services)

Important

Supervisor is only available in Docker images which are based on webdevops/base!

Introduction

Supervisor daemon is used to start and supervise more than one process in Docker containers. More about supervisor can be found on supervisor homepage at http://supervisord.org/

Enable and disable services

For enabling services run docker-service-enable or docker-service-disable inside your Dockerfile.

eg:

RUN docker-service-enable ssh

This task will also trigger an auto installation if the daemon is not installed.

Configuration

The main supervisor configuration file is located at /opt/docker/etc/supervisor.conf and only controls the supervisor daemon itself. All services are configured inside /opt/docker/etc/supervisor.d/ directory.

Example configuration for hhvm:

[group:hhvm]
programs=hhvmd
priority=20

[program:hhvmd]
command = /opt/docker/bin/service.d/hhvm.sh
process_name=%(program_name)s
directory = /var/run/hhvm/
startsecs = 0
autostart = true
autorestart = true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

Service daemon scripts

For every service there is a small bash script inside /opt/docker/bin/service.d/ which takes care how to start the service. This script also have a modular task runner which runs files from /opt/docker/bin/service.d/SERVICE.d/*.sh.

Example for HHVM:

HHVM's service script is located at /opt/docker/bin/service.d/hhvm.sh.

Before running HHVM all scripts found with /opt/docker/bin/service.d/hhvm.d/*.sh will be executed.