Compare commits
5 Commits
v0.1.1
...
fd7ffee647
| Author | SHA1 | Date | |
|---|---|---|---|
| fd7ffee647 | |||
| 13e943e32b | |||
| 1465691595 | |||
| 0f92c0443c | |||
| 1112e0c1f2 |
11
Dockerfile
11
Dockerfile
@@ -1,11 +1,8 @@
|
||||
FROM ubuntu:latest
|
||||
|
||||
# 更新並安裝必要的工具後清理暫存檔案以減小映像檔大小
|
||||
RUN apt update \
|
||||
&& apt install -y curl \
|
||||
&& apt clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
FROM alpine:latest
|
||||
|
||||
# 安裝必要的工具
|
||||
RUN apk add --no-cache --no-check-certificate bash curl
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
@@ -20,21 +20,19 @@ echo "--------------------------------------------------"
|
||||
|
||||
# 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼
|
||||
while true; do
|
||||
echo -n "[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] $CHECK_URL ... "
|
||||
# 使用 curl 取得狀態碼,並將結果輸出到環境變數 STATUS_CODE
|
||||
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE"
|
||||
|
||||
# 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE
|
||||
STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL")
|
||||
# curl 無法連線時常見為 000,持續重試
|
||||
if [ "$STATUS_CODE" != "000" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
echo "$STATUS_CODE" && [ "$STATUS_CODE" != "000" ] && break
|
||||
|
||||
# 如果狀態碼為 "000",表示連線失敗,等待 60 秒後重試
|
||||
sleep 60
|
||||
# 使用 bash 內建等待 60 秒,避免 sleep 指令不存在
|
||||
read -r -t 60 _ < /dev/null || true
|
||||
done
|
||||
|
||||
# 將狀態碼輸出到環境變數
|
||||
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# 檢查狀態碼是否正確
|
||||
[ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1
|
||||
|
||||
echo "=================================================="
|
||||
Reference in New Issue
Block a user