¿Cómo hacer un bucle por 3 veces en el script bash cuando falla el docker push?


9

Tengo un script bash que simplemente Docker empuja una imagen:

docker push $CONTAINER_IMAGE:latest

Quiero repetir 3 veces cuando esto falla. ¿Cómo debo lograr esto?

Respuestas:


22

Uso for-loopy && break:

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

breaksale del bucle, pero solo se ejecuta cuando se realiza docker pushcorrectamente. Si docker pushfalla, saldrá con error y el bucle continuará.


44
Técnicamente, OP quiere que se repita tres veces cuando falla . Entonces, ¿no debería ser el contador de bucle 4 ?
RonJohn

5

También puedes usar :

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

La thendeclaración se ingresará solo si el comando docker tiene éxito.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.