¿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?

ALH
fuente

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á.

pLumo
fuente
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.

arna
fuente