繁体   English   中英

Docker-compose 运行服务以防其他故障

[英]Docker-compose run service in case of other failure

我想问一下,如果出现故障,是否可以运行一些备份服务。 我的场景是:

我有两种通信方式(默认和关键),如果默认失败,我想从 docker-compose.yml 启动其他服务。

我想将这两种方法放在同一个 docker-compose.yml 文件中。

您对如何解决这种情况有什么想法吗?

提前致谢。

对于给定的 docker-compose.yml 文件:

version: "3.7"
services:
  default:
    image: alpine
    command: sleep 10 && exit 1
  critical:
    image: alpine
    command: tail -f /dev/null

你可以通过一个长时间运行的进程来获得你想要的效果,等待“默认”服务退出,然后在看到退出代码 1 时启动关键(你可以调整确切的逻辑以适应你的故障模式):

docker-compose up -d default

接着:

result=$(docker wait $(docker-compose ps -q default)); if [ $result -eq "1" ]; then docker-compose up -d critical; fi

docker wait 命令将阻塞,直到“默认”容器退出并打印退出代码,该代码进入 $result 变量。 之后的逻辑检查“1”,然后调出“关键”服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM