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