三海豹dind與GitLab Runner研究1
首先在RHEL8機台上裝好三海豹跟gitlab-runner
#查看可用模組:
sudo yum module list#安裝三海豹整組工具:
sudo yum module install container-tools -y
接下來參考官網安裝GitLab Runner:
#這步可能會變,還是去複製官網:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash#安裝:
sudo yum install gitlab-runner -y
參考這篇解說嘗試建立podman的dind模式的GitLab Runner
#一開始我先確定剛安裝完的podman服務狀態:
systemctl status podman#啟動podman socket :
sudo systemctl enable --now podman#再次確認podman服務狀態:
systemctl status podman
根據以下內容做一些確認:
#試著執行上述語法(多帶sudo)用podman充當docker runner,另外改預設image:
sudo gitlab-runner register \
--non-interactive \
--name "<YOUR_GITLAB_RUNNERS_NAME>" \
--url "<GITLAB_SERVER_URL>" \
--registration-token "<GITLAB_REGISTRATION_TOKEN>" \
--executor docker \
--docker-privileged=true \
--env "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,docker,privileged"
我實際執行大概改為:
sudo gitlab-runner register \
--non-interactive \
--name "<GITLAB_RUNNERS名稱>" \
--url "<GITLAB_SERVER_URL位置>" \
--registration-token "<GITLAB_REGISTRATION_TOKEN要去gitlab找>" \
--executor docker \
--docker-privileged=true \
--env "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,docker,privileged"
目前學GitLab CI的.gitlab-ci.yml檔案目前內容如下:
我試著改寫這兩步:
最後在build就掛了:
找了一下可能是名稱換了:
這邊先想辦法把gitlab-ruuner反註冊
前後有試了一些指令都沒辦法反註冊:
接著嘗試另外建gitlab runner:
#改用新的option來給定docker-host位置,這次名稱多2:
sudo gitlab-runner register \
--non-interactive \
--name "podman-dind2" \
--url "https://gitlab.com/" \
--registration-token "{我gitlab上面串runner的token}" \
--executor docker \
--docker-privileged=true \
--docker-host "unix:///var/run/podman/podman.sock" \
--env "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,docker,privileged"#如上也就是多這行--docker-host "unix:///var/run/podman/podman.sock" \
重跑:
看起來在root底下真的有拉docker:20.10.16的image:
後來看一看jq那段不用應該也沒差,只是給一個比較複雜但是完整的tag
暫時省略成:
重跑看到:
build image過了!,詳細log:
看起來可以!