[英]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.