RUnit不会停止docker-compose的容器

时间:2015-03-25 15:59:40

标签: docker runit docker-compose

我希望有一个RUnit服务来监督docker-compose工具启动的一组容器,这是我的runit脚本:

/etc/sv/app/run

#!/bin/bash
exec 2>&1

APP_HOME=/home/myapp

source $APP_HOME/env.sh
exec docker-compose -f $APP_HOME/docker-compose.yml up

这就是我的所作所为:

  • sv start app - 启动docker-compose就好了
  • sv stop app - 停止docker-compose进程本身但由于未知原因导致容器运行

是否有机会使用stop命令来停止容器?我认为当它被RUnit停止时,docker-compose应该做什么。

1 个答案:

答案 0 :(得分:0)

我不熟悉docker(还),但我对runit很熟悉。

当您发出sv stop app时,您实际上是在告诉runsvdir您的码头工具发送的runsv,以便推断该过程。如果你需要一些东西来指示容器关闭,那么就不会发生这种情况,因为runsv会拖走并杀死任何附加的子进程。您可能希望阅读./finish脚本,这些脚本的任务是清理事物。