Jak zapętlić się 3 razy w skrypcie bash, gdy nie powiedzie się wypychanie dokera?


9

Mam skrypt bash, który po prostu doker wypycha obraz:

docker push $CONTAINER_IMAGE:latest

Chcę zapętlić się 3 razy, gdy to się nie powiedzie. Jak mam to osiągnąć?

Odpowiedzi:


22

Użyj for-loopi && break:

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

breakwychodzi z pętli, ale działa tylko po pomyślnym zakończeniu docker push. Jeśli się docker pushnie powiedzie, zakończy działanie z błędem i pętla będzie kontynuowana.


4
Technicznie rzecz biorąc, OP chce, aby zapętlał się trzy razy, gdy zawiedzie . Czy więc licznik pętli nie powinien wynosić 4 ?
RonJohn

5

Możesz także użyć :

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

thenOświadczenie zostaną wprowadzone wyłącznie wtedy, gdy komenda doker powiedzie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.