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

9

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

docker push $CONTAINER_IMAGE:latest

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

ALH
источник

Ответы:

22

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

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

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

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

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

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

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

Арна
источник