diff --git a/entrypoint.sh b/entrypoint.sh index 50ab077..0483339 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -20,19 +20,18 @@ echo "--------------------------------------------------" # 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼 while true; do - # 使用 curl 取得狀態碼,並將結果輸出到環境變數 STATUS_CODE - STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE" + echo -n "[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] $CHECK_URL ... " - # curl 無法連線時常見為 000,持續重試 - if [ "$STATUS_CODE" != "000" ]; then - break - fi + # 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE + STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL") - # 使用 bash 內建等待 60 秒,避免 sleep 指令不存在 - read -r -t 60 _ < /dev/null || true + echo "$STATUS_CODE" && [ "$STATUS_CODE" != "000" ] && break done # 將狀態碼輸出到環境變數 echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT" +# 檢查狀態碼是否正確 +[ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1 + echo "==================================================" \ No newline at end of file