Làm thế nào để lặp 3 lần trong bash script khi đẩy docker không thành công?


9

Tôi có một tập lệnh bash chỉ đơn giản là docker đẩy một hình ảnh:

docker push $CONTAINER_IMAGE:latest

Tôi muốn lặp lại 3 lần khi điều này thất bại. Làm thế nào tôi nên đạt được điều này?

Câu trả lời:


22

Sử dụng for-loop&& break:

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

breakthoát khỏi vòng lặp, nhưng chỉ chạy khi docker pushthành công. Nếu docker pushthất bại, nó sẽ thoát với lỗi và vòng lặp sẽ tiếp tục.


4
Về mặt kỹ thuật, OP muốn nó lặp lại ba lần khi thất bại . Vì vậy, không nên bộ đếm vòng lặp là 4 ?
RonJohn

5

Bạn cũng có thể dùng :

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

Câu thenlệnh sẽ chỉ được nhập nếu lệnh docker thành công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.