Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
caca2c9a91 | ||
|
|
c898b47a72 | ||
|
|
43a5d0f077 | ||
|
|
46006d3a0d | ||
|
|
9335cf585a | ||
|
|
5c97ceada7 | ||
|
|
0a1971441e | ||
|
|
b888fd2108 | ||
|
|
d50f122a50 | ||
| bcd0766c95 | |||
| 71938b5b42 | |||
| 04eec23b2b | |||
| 3bb33d6240 | |||
| fb777eec31 |
17
Dockerfile
17
Dockerfile
@@ -1,10 +1,21 @@
|
|||||||
FROM alpine:latest
|
FROM ubuntu:latest
|
||||||
|
|
||||||
# 安裝必要的工具
|
# 更新並安裝必要的工具後清理暫存檔案以減小映像檔大小
|
||||||
RUN apk add --no-cache --no-check-certificate bash curl
|
RUN apt update \
|
||||||
|
&& apt install -y curl \
|
||||||
|
&& apt clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# 複製私人證書到容器中
|
||||||
|
COPY rootCA.pem /usr/local/share/ca-certificates/rootCA.crt
|
||||||
|
COPY jsc.idv.me+4.pem /usr/local/share/ca-certificates/jsc.idv.me+4.crt
|
||||||
|
|
||||||
|
# 複製入口腳本到容器中
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
# 更新 CA 證書以確保系統信任新的證書
|
||||||
|
RUN update-ca-certificates
|
||||||
|
|
||||||
RUN chmod +x /entrypoint.sh
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
@@ -8,6 +8,9 @@ inputs:
|
|||||||
HEALTH_CODE:
|
HEALTH_CODE:
|
||||||
description: '健康碼'
|
description: '健康碼'
|
||||||
default: '200'
|
default: '200'
|
||||||
|
outputs:
|
||||||
|
status_code:
|
||||||
|
description: '服務的狀態碼'
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: 'docker'
|
||||||
image: 'Dockerfile'
|
image: 'Dockerfile'
|
||||||
|
|||||||
@@ -20,19 +20,21 @@ echo "--------------------------------------------------"
|
|||||||
|
|
||||||
# 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼
|
# 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼
|
||||||
while true; do
|
while true; do
|
||||||
# 使用 curl 取得狀態碼,並將結果輸出到環境變數 STATUS_CODE
|
echo -n "[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] $CHECK_URL ... "
|
||||||
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE"
|
|
||||||
|
|
||||||
# curl 無法連線時常見為 000,持續重試
|
# 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE
|
||||||
if [ "$STATUS_CODE" != "000" ]; then
|
STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL")
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 休息 1 秒後重試
|
echo "$STATUS_CODE" && [ "$STATUS_CODE" != "000" ] && break
|
||||||
sleep 1
|
|
||||||
|
# 如果狀態碼為 "000",表示連線失敗,等待 60 秒後重試
|
||||||
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "=================================================="
|
||||||
|
|
||||||
# 將狀態碼輸出到環境變數
|
# 將狀態碼輸出到環境變數
|
||||||
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
echo "=================================================="
|
# 檢查狀態碼是否正確
|
||||||
|
[ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1
|
||||||
26
jsc.idv.me+4.pem
Normal file
26
jsc.idv.me+4.pem
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEdzCCAt+gAwIBAgIQWiFE9btAuOMh5NCtqdOF8zANBgkqhkiG9w0BAQsFADCB
|
||||||
|
gzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSwwKgYDVQQLDCNzaHVv
|
||||||
|
Y2hlbkB2bS1kb2NrZXIgKFNIVU8tQ0hFTiBKSUFOKTEzMDEGA1UEAwwqbWtjZXJ0
|
||||||
|
IHNodW9jaGVuQHZtLWRvY2tlciAoU0hVTy1DSEVOIEpJQU4pMB4XDTI1MDQyNTA5
|
||||||
|
MTcyMFoXDTI3MDcyNTA5MTcyMFowVzEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3Bt
|
||||||
|
ZW50IGNlcnRpZmljYXRlMSwwKgYDVQQLDCNzaHVvY2hlbkB2bS1kb2NrZXIgKFNI
|
||||||
|
VU8tQ0hFTiBKSUFOKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANa+
|
||||||
|
STqRYlaMjhvjxBFbseGGudxXCef0+vPTmrBVLiUKjjVDkjDYvIOkSJioZL5qIpRY
|
||||||
|
hy2vMFrAi/ZlugBZW3POjPWMyYJNjc2uZDDdYSRQPv/weVXeGE1e/uT5yxPysep6
|
||||||
|
lL6b+oJjCHVF93HCFUgbTeTNvi6DBkhdOgJv13482ddEITtmB3PQMsVdHCYOAYvY
|
||||||
|
RpMKebU+Q4hf9jwbF8Rugt1287fhcuEs82XDih1a8/90Gwsjh8ag7iHWMB2BTZjX
|
||||||
|
hluZ2O0Yy00y4JeXRInV2YhzYVEU9QRx+Umbhzikq5eMrxwU2AZ2jaQTtiGb2itr
|
||||||
|
29LSWU3uUdBT4KlG5ZMCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l
|
||||||
|
BAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUAij2DW/P4hUAsOzil/bOvAcSJfQw
|
||||||
|
RgYDVR0RBD8wPYIKanNjLmlkdi5tZYIMKi5qc2MuaWR2Lm1lgglsb2NhbGhvc3SH
|
||||||
|
BH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwDQYJKoZIhvcNAQELBQADggGBADylkrW0
|
||||||
|
Tx5U8UMh2AvH6wZwX4w5Qm2IVu2CKyR9g7CJmgmCMziR2a/XmTEqOfDjVyBGMwR+
|
||||||
|
A0inhzivKII11HM/jlDhteBl+sho93f0lPfWRBgCaO8UXBkH/gudpSjZ6NEI5W1j
|
||||||
|
J4cnhV5aPWboSWlwrRYxDYETCeLluu6njDlcsERbF5OcLXopOEeCVeQwaHN3nu3O
|
||||||
|
0DLSr78Ztio+PZGlpznmrOtWRm9lgoKe9ugYdJOY+NtNcSpsaoXqZVgqf4UCCyu6
|
||||||
|
+p8x8Kc8yj24lwSdEbiUYiI8fKk5kGrmBT0IShwR5Jds2B32dspeS92YfmIQHr+h
|
||||||
|
qRHXeCts7bmX4z4GqeT6dbBFwFKIBhWXl1M53GQvZpYWAiOjXkMt+FkbQL8zofnp
|
||||||
|
gLkpVqUZ6uBb/NZc7x7vtipzIswrJGjxqzpiqlfHTcn+3rwbD43NpNpNsI/Kqd81
|
||||||
|
M3AuIAj00Nv7+EBH66SjN/YQSauYSdZJrFndMMPxAvPKfkhyee0ewLkWFw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
rootCA.pem
Normal file
28
rootCA.pem
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIE1zCCAz+gAwIBAgIQa4BGxgsUBBsGn5Lx+ryQmDANBgkqhkiG9w0BAQsFADCB
|
||||||
|
gzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSwwKgYDVQQLDCNzaHVv
|
||||||
|
Y2hlbkB2bS1kb2NrZXIgKFNIVU8tQ0hFTiBKSUFOKTEzMDEGA1UEAwwqbWtjZXJ0
|
||||||
|
IHNodW9jaGVuQHZtLWRvY2tlciAoU0hVTy1DSEVOIEpJQU4pMB4XDTI1MDQyNTA5
|
||||||
|
MTY0OFoXDTM1MDQyNTA5MTY0OFowgYMxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9w
|
||||||
|
bWVudCBDQTEsMCoGA1UECwwjc2h1b2NoZW5Adm0tZG9ja2VyIChTSFVPLUNIRU4g
|
||||||
|
SklBTikxMzAxBgNVBAMMKm1rY2VydCBzaHVvY2hlbkB2bS1kb2NrZXIgKFNIVU8t
|
||||||
|
Q0hFTiBKSUFOKTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAL0gzICC
|
||||||
|
R2s7us7tpzFRSyG7HGrqu25fjd49/aESzYMk9ztCj5Zm5uIT3O7xqfj2y2UsQcuw
|
||||||
|
xL0FzsECQUeQx7PQwWOMnZfyYFrlkBFbDZa9nVHltsC8t/C1IP0oOH1d+iKKkxRy
|
||||||
|
7ynFp5HlhLueECd8wPTjHRo8idTNyKnNpzsL6rkPjx90cuBlLMna1fBzIN8BPpVK
|
||||||
|
4x3dNktRiDUU/uIZLtvb6w41+mD6gIFalds1P4kG/nYC8GWSe6ZCp2vqJVIGr7/q
|
||||||
|
wx38q6owzwPect7+ENEES2QcnHK/PcR/5uCOqrX1ZhVEtduV8n7EPMD6Onp8c9H/
|
||||||
|
JxMoV9TT4UERbbXYxKMp0vGxR5q0a29yajKN0ub0Qq/LI+uISFgnYfbqxMWr0i7t
|
||||||
|
tWswUMmvxQ4gOXtgnffzHOrLucr+k0jkx6dU6Yn/TAokF1YsMoyi9LgEfkz3XRwk
|
||||||
|
26Eaf7+3mFJdBneHetld4D0pO8bwUuqi4zhYTqei7FeKiMPeYNLwaR9FHwIDAQAB
|
||||||
|
o0UwQzAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E
|
||||||
|
FgQUAij2DW/P4hUAsOzil/bOvAcSJfQwDQYJKoZIhvcNAQELBQADggGBAJb9jRZi
|
||||||
|
uiYmeeMZK/4P2AM+nvBEAuQMtPPizkt+l9i4A4HB/xFAwbPyF5rtK39SRyvRaEyp
|
||||||
|
IuJ3y6wGEhB3jauhU2NtY8Q9YiYlwOHTFPkTIGW4XdcRLB/7CVGEZrhEDAthIPxn
|
||||||
|
KSIircf5rTz2+SjtlIfFamSyyPmf+qpydOZ4PEKTPQyiwdKf8gy1Dyr3Ci7cU5Ze
|
||||||
|
Pgt0dlK2h7UrLcr60PHM5PbewEl2Llg0WCtApikd0rwL+CseEiyNkIgdGW/4HADo
|
||||||
|
S7fnmu4D7Tm7aSgmCF+8dGQIYhGlYXcDhDvJyoP1eZulVUYvLIGXoSiBUkqvLm8S
|
||||||
|
INlsFNxl4RZyChDSLunVhl7oDfFEJ2YNGGwK9qnkxCHSnz7SIi/VE7zAc4UunSn6
|
||||||
|
bwSF9tA77Nh96zAE06UNGx78369hrOn16oAKBBeFKoWnmLhFIBoKgSY2l6fDjyGm
|
||||||
|
yHdDhcU60u7sD4vme3KBgraGk6wQMYVK9rOCfx8fqM7Z2mbp1MQa/ps1og==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
Reference in New Issue
Block a user