Run GitLab Runner in a container and support docker in docker
使用 GitLab Runner,可以選擇直接安裝,或者使用 Docker Image,也是這次範例的方式。一般設定的話,不能在這個 Runner 執行 docker in docker 的操作,下面是需要的設定。
Register
首先是註冊 Runner,記得要準備好你的 TOKEN。
docker run --rm -v /srv/gitlab-runner/runner-01/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--description "The runner support docker in docker" \
--docker-image alpine:latest \
--url "https://gitlab.com/" \
--registration-token "YOUR_TOKEN" \
--tag-list "dind" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected" \
--docker-privileged \
--docker-volumes "/certs/client"
其中的重點在最後兩個參數,分別是 --docker-privilleged
提供 docker in docker 的權限,另一個是 --docker-volumes
設定 TLS 的憑證儲存位置
在指令一開始就有指定 -v /srv/gitlab-runner/runner-01/config:/etc/gitlab-runner
所以註冊後的資料會保留在 host 的 /srv/gitlab-runner/runner-01/config
位置
Run
有了註冊後的 config,就可以啟動 Runner 了,跟一般的啟動方式一樣。
docker run -d --name gitlab-runner-runner-01 --restart always \
-v /srv/gitlab-runner/runner-01/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
同樣因為有指定 -v
參數,所以會從指定的 Host 路徑讀取設定檔執行 runner。
Ref
[Registering Runners | GitLab](https://docs.gitlab.com/runner/register/index.html#docker) |
[Run GitLab Runner in a container | GitLab](https://docs.gitlab.com/runner/install/docker.html) |
TODO 如果有機會再補充的資料
.gitlab-ci-yml 範例 配合的 .gitlab-ci-yml 範例 真實的 gitlab project 範例? 可能的錯誤訊息
留言