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?

ALH
sumber

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.

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

arna
sumber