web-dev-qa-db-ja.com

docker Pushが失敗したときに、bashスクリプトで3回ループする方法は?

私は単純にドッカーが画像をプッシュするbashスクリプトを持っています:

docker Push $CONTAINER_IMAGE:latest

これが失敗したときに3回ループしたいと思います。どうすればこれを達成できますか?

9
ALH

使用する for-loopおよび&& break

for n in {1..3}; do
    docker Push $CONTAINER_IMAGE:latest && break;
done

breakはループを終了しますが、docker Push成功しました。 docker Pushは失敗し、エラーで終了し、ループが続行されます。

22
pLumo

あなたも使うことができます:

for n in {1..3}; do
     if docker Push $CONTAINER_IMAGE:latest  
     then 
          break;
     fi
done

thenステートメントは、dockerコマンドが成功した場合にのみ入力されます。

5
arna