Как зациклить 3 раза в bash-скрипте, когда не удается нажать на кнопку Docker?


9

У меня есть скрипт bash, который просто docker выдвигает изображение:

docker push $CONTAINER_IMAGE:latest

Я хочу зациклить 3 раза, когда это не удается. Как мне этого добиться?

Ответы:


22

Используйте for-loopи && break:

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

breakвыходит из цикла, но запускается только при docker pushуспешном выполнении. Если docker pushпроизойдет сбой, он выйдет с ошибкой и цикл продолжится.


4
Технически, OP хочет выполнить цикл три раза в случае сбоя . Так не должен ли счетчик цикла быть 4 ?
RonJohn

5

Вы также можете использовать:

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

thenЗаявление будет введено только если команда докер успешно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.