簡體   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