Wie kann ich im Bash-Skript dreimal eine Schleife ausführen, wenn der Docker-Push fehlschlägt?


9

Ich habe ein Bash-Skript, das Docker einfach ein Bild pusht:

docker push $CONTAINER_IMAGE:latest

Ich möchte dreimal schleifen, wenn dies fehlschlägt. Wie soll ich das erreichen?

Antworten:


22

Verwenden Sie for-loopund && break:

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

breakBeendet die Schleife, wird jedoch nur ausgeführt, wenn dies docker pusherfolgreich war. Wenn dies docker pushfehlschlägt, wird es mit einem Fehler beendet und die Schleife wird fortgesetzt.


4
Technisch will OP es dreimal zu Schleife , wenn es fehlschlägt . Sollte der Schleifenzähler nicht 4 sein ?
RonJohn

5

Sie können auch verwenden:

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

Die thenAnweisung wird nur eingegeben, wenn der Docker-Befehl erfolgreich ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.