Comment boucler 3 fois dans le script bash lorsque la poussée du docker échoue?


9

J'ai un script bash qui simplement docker pousse une image:

docker push $CONTAINER_IMAGE:latest

Je veux faire une boucle 3 fois lorsque cela échoue. Comment dois-je y parvenir?

Réponses:


22

Utiliser for-loopet && break:

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

breakquitte la boucle, mais ne s'exécute qu'en cas de docker pushréussite. En cas d' docker pushéchec, il se terminera avec une erreur et la boucle continuera.


4
Techniquement, OP veut qu'il boucle trois fois lorsqu'il échoue . Alors, le compteur de boucle ne devrait-il pas être 4 ?
RonJohn

5

Vous pouvez aussi utiliser :

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

L' theninstruction sera entrée uniquement si la commande docker réussit.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.