Jenkins Container Health Check
隨便搞一台機器裝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)