Bagaimana cara mengulang sebanyak 3 kali dalam skrip bash ketika push docker gagal?


9

Saya memiliki skrip bash yang dengan sederhana Docker mendorong sebuah gambar:

docker push $CONTAINER_IMAGE:latest

Saya ingin mengulang sebanyak 3 kali ketika gagal. Bagaimana saya harus mencapai ini?

Jawaban:


22

Gunakan for-loopdan && break:

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

breakkeluar dari loop, tetapi hanya berjalan ketika docker pushberhasil. Jika docker pushgagal, itu akan keluar dengan kesalahan dan loop akan berlanjut.


4
Secara teknis, OP ingin loop tiga kali ketika gagal . Jadi, bukankah seharusnya penghitung lingkaran menjadi 4 ?
RonJohn

5

Anda juga bisa menggunakan :

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

The thenpernyataan akan dimasukkan hanya jika perintah buruh pelabuhan berhasil.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.