0

我想要一个 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停止容器的命令?我认为这就是 docker-compose 在被 RUnit 停止时应该做的事情。

4

1 回答 1

0

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

当您发出时,sv stop app您实际上是在告诉您的 docker 启动runsvdir发出信号以终止该过程。runsv如果您需要一些东西来指示容器关闭,它不会发生,因为runsv会拖走并杀死任何附加的子进程。您可能希望阅读./finish脚本,这些脚本的任务是清理事物。

于 2015-04-16T21:49:05.943 回答