ksaitoの日記

日々試したことの覚え書き

upstartからdocker-composeを起動する。

移転しました。

自動的にリダイレクトします。

docker-composeで構築したサーバ一式をUbuntu 14.04のupstart自動起動する方法です。

upstartにサービスを追加

upstartは、/etc/initサービス名.confという設定ファイルを追加します。

$ cat -n /etc/init/docker-zabbix.conf; echo
     1  start on started docker
     2  exec /usr/local/bin/docker-compose -f /home/ubuntu/git/zabbix/docker-compose.yml up -d
$ 

1行目のstart on started dockerでdockerが起動したら実行するように指定します。 2行目にdocker-composeを実行します。-fオプションでdocker-compose.ymlファイルを指定するのがポイントです。

起動

dockerサービスを起動する前の状態は、以下の通りです。

$ initctl status docker; initctl status docker-zabbix
docker stop/waiting
docker-zabbix stop/waiting
$ 

dockerサービスが起動すると一緒に起動します。

$ sudo initctl start docker
docker start/running, process 27922
$ initctl status docker; initctl status docker-zabbix; docker-compose -f /home/ubuntu/git/zabbix/docker-compose.yml ps
docker start/running, process 27922
docker-zabbix stop/waiting
  Name           Command          State                                                     Ports
---------------------------------------------------------------------------------------------------------------------------------------------------
zabbix     /config/bootstrap.sh   Up      0.0.0.0:10051->10051/tcp, 0.0.0.0:10052->10052/tcp, 0.0.0.0:12345->12345/tcp, 162/udp, 0.0.0.0:80->80/tcp
zabbixdb   /run.sh                Up      3306/tcp
$ 

追加したサービスのステータスがstop/waitingが気になりますが...