Como fazer um loop por 3 vezes no script bash quando o envio do docker falha?


9

Eu tenho um script bash que simplesmente docker empurra uma imagem:

docker push $CONTAINER_IMAGE:latest

Eu quero fazer um loop por 3 vezes quando isso falhar. Como devo conseguir isso?

Respostas:


22

Use for-loope && break:

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

breaksai do loop, mas só é executado quando for docker pushbem-sucedido. Se docker pushfalhar, ele sairá com erro e o loop continuará.


4
Tecnicamente, o OP deseja que ele faça um loop três vezes quando falhar . Então, o contador de loop não deve ser 4 ?
9119 RonJohn

5

Você também pode usar :

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

A theninstrução será inserida apenas se o comando docker for bem-sucedido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.