首先先單純化,要達成以下:
參考官方doc:
這邊選用上述的Option 1
這邊先選用tag版號:alpine3.15-v15.2.1
使用podman啟動該gitlab-runner container時調整為以下:
#官網上用docker的語法如下:
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest#我改用podman啟動上述runner語法,因為要指向podman的sock,語法改為以下:
sudo podman run -d --name gitlab-runner-container --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /run/podman/podman.sock:/var/run/podman/podman.sock \
gitlab/gitlab-runner:alpine3.15-v15.2.1#上面主要先把後面執行podman所要對應的sock空間定義出來
#然後後續做register後生成檔案位置/srv/gitlab-runner/config空間也定義出來
#這樣該gitlab-runner container掛了重啟還能吃到register定義檔config.toml
看起來是指向去拉Redhat的image
所以我改為以下
#多docker.io
sudo podman run -d --name gitlab-runner-container --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /run/podman/podman.sock:/var/run/podman/podman.sock \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1
看起來要先把目錄開好
在/srv目錄下開好gitlab-runner跟裡面的config目錄
再重跑上面建立container指令:
接著處理註冊
在剛才的頁面往下拉:
看起來原理就是起另一個gitlab-runner container來下register指令
到時候register的設定檔
會生成在/srv/gitlab-runner/config底下叫config.toml的樣子
但是語法上我需要調整為:
#register的臨時container語法:
sudo podman run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 register#過程容器起來處理register過程要填入以下
#1.GitLab instance URL
#2.token
#3.description也就是給這個runner一個名稱
#4.tag,我應該會填podman,containerrunner,cr
#5.maintenance note留空白
#6.runner executor就是選docker
#7.default image給docker.io/docker:20.10.16============================改以下=================================
#後來想想應該要參考前篇方式給註冊Runner:
sudo podman run --rm -it -v \
/srv/gitlab-runner/config:/etc/gitlab-runner\
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 register\
--non-interactive \
--name "podman-dind-container" \
--url "https://gitlab.com/" \
--registration-token "{我gitlab上面串runner的token}" \
--executor docker \
--docker-privileged=true \
--docker-host "unix:///var/run/podman/podman.sock" \
--docker-image "docker.io/docker:20.10.16"\
--docker-volumes "/run/podman/podman.sock:/var/run/podman/podman.sock" \
--tag-list "podman,containerrunner,cr"
對應到前面綁定的位置:
所以要打開實體機上的/srv/gitlab-runner/config的目錄權限
因為暫時搞不懂會是什麼帳號做寫入,直接先給777
再次註冊!
還是一樣:
進去從裡面看:
這邊是著重建runner container:
再次重跑註冊Runner:
後來所有container都關掉
我嘗試直接在上面開一個空檔案:
直接改/srv目錄權限:
#最後重建/srv/gitlab-runner/config目錄:
cd /srv
mkdir gitlab-runner
cd gitlab-runner
mkdir config
cd#重建立gitlab-runner container(過程PV要用selinux模式,帶大Z)
sudo podman run -d --name gitlab-runner-container --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner:Z \
-v /run/podman/podman.sock:/var/run/podman/podman.sock \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1#另起gitlab-runner container專門來註冊(過程PV要用selinux模式,帶大Z)
sudo podman run --rm -it -v \
/srv/gitlab-runner/config:/etc/gitlab-runner:Z \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 register\
--non-interactive \
--name "podman-dind-container" \
--url "https://gitlab.com/" \
--registration-token "{網站上設定的Token}" \
--executor docker \
--docker-privileged=true \
--docker-host "unix:///var/run/podman/podman.sock" \
--docker-image "docker.io/docker:20.10.16"\
--docker-volumes "/run/podman/podman.sock:/var/run/podman/podman.sock" \
--tag-list "podman,containerrunner,cr"
查看GitLab網站上:
比對一下設定:
我用Container來取消註冊:
#容器內的runner取消註冊:
sudo podman run --rm -it -v \
/srv/gitlab-runner/config:/etc/gitlab-runner:Z \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 \
unregister --all-runners
再次調整為,主要修正預設的docker image:
#註冊:
sudo podman run --rm -it -v \
/srv/gitlab-runner/config:/etc/gitlab-runner:Z \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 register\
--non-interactive \
--name "podman-dind-container" \
--url "https://gitlab.com/" \
--registration-token "{gitlab網站上的runner註冊Token}" \
--executor docker \
--docker-privileged=true \
--docker-host "unix:///var/run/podman/podman.sock" \
--docker-image "docker:20.10.16" \
--docker-volumes "/run/podman/podman.sock:/var/run/podman/podman.sock" \
--tag-list "podman,containerrunner,cr"
爬文要解決這問題要執行gitlab-runner verify:
#執行verify:
sudo podman run --rm -it -v \
/srv/gitlab-runner/config:/etc/gitlab-runner:Z \
docker.io/gitlab/gitlab-runner:alpine3.15-v15.2.1 verify
試試:
暫時玩到這邊!