Jenkins Container Health Check

Jenkins Container Health Check

ZONGRU Li
Dec 21, 2022

隨便搞一台機器裝podman:

#原本執行jenkins容器可能方式是:
podman run --name=jenkins_container -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

#嘗試改用:
podman run --name=jenkins_container -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home \
--health-cmd='curl http://localhost:8080/login|grep HTTP|grep 200 || exit 1' \
--health-interval=180s \
--health-start-period=3m \
jenkins/jenkins:lts

之後health check會因為第一次登入要打密碼的頁面卡著

之後嘗試後我找到可能比較符合需求的curl檢查health的語法

#第一種自訂輸出:
curl -fsS http://localhost:8080/login > /dev/null && echo "success"

#只把關鍵的200印出來:
curl -Is http://localhost:8080/login | head -n 1|grep 200
#綜合以上,所以要使用的podman run語法要改成:
podman run --name=jenkins_container -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home \
--health-cmd='{指令}' \
--health-interval=180s \
--health-start-period=3m \
docker.io/jenkins/jenkins:lts


其中上面的指令是(medium直接貼上面沒辦法儲存):
curl -Is http://localhost:8080/login | head -n 1|grep 200 || exit 1

先移除現有的容器:

重建:

依據設置,之後就是每180秒再次自行檢查

額外參考影片(LINK)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet