diff --git a/entrypoint.sh b/entrypoint.sh index b0250bf..f4214f2 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -18,10 +18,21 @@ echo "取得狀態碼" echo "--------------------------------------------------" -# 使用 curl 從 CHECK_URL 取得狀態碼,並將結果存儲在 STATUS_CODE 變數中 -STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE" +# 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼 +while true; do + # 使用 curl 取得狀態碼,並將結果輸出到環境變數 STATUS_CODE + STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE" + + # curl 無法連線時常見為 000,持續重試 + if [ "$STATUS_CODE" != "000" ]; then + break + fi + + # 休息 1 秒後重試 + sleep 1 +done # 將狀態碼輸出到環境變數 -echo "status_code=$STATUS_CODE" >> $GITHUB_OUTPUT +echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT" echo "==================================================" \ No newline at end of file