如何在 Docker 中運行 GitLab Runner?
前言
一般來說,我們可以在使用本地端安裝的 GitLab Runner 來作為專案 CI/CD 的機器。除此之外,GitLab 亦提供 GitLab Runner 的 Docker images [1],讓我們在 Docker 的 container 中運行 GitLab Runner。
本篇文章將參考官方文件 [2] 來進行介紹,先從 docker 的安裝介紹,再逐步建立 Docker 容器,並運行 GitLab Runner,希望能幫自己做個紀錄,也能幫助正在尋求解答的人。
安裝 Docker
使用套件管理系統安裝
macOS
1$ brew casks install docker
Linux (Ubuntu) [3]
如果你是第一次在電腦上安裝 Docker,需要先設定 Docker 的 repository
更新
apt
,並同意apt
在 HTTPS 上使用 repository添加 Docker 官方的 GPG key
1$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyring.gpg
透過以下的命令來設定 stable 的 repository。你也可以將 stable 改成 nightly 或是 test 的 repository,來使用不同版本的 repository
設定完 repository,接著來安裝 Docker 引擎
更新
apt
package 的條目,以確保 package 皆在最新的條目上,並安裝 latest 版的 Docker 引擎 和 containerd運行 hello-world 的映像檔(image),確認是否安裝完成
1$ sudo docker run hello-world
解除安裝 Docker 引擎
解除安裝 Docker Engine, CLI, Containerd packages
1$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
電腦上的 Images, Containers 和 Volumes 及設定檔並不會被自動移除,要刪除以上檔案需要自己手動移除他們
在 container 中運行 GitLab Runner
我們可以透過 docker run
來一步完成建立 (docker create
) 以及開啟 (docker run
) 的步驟。在下面我將介紹兩種方法,來確保在 Docker container 中運行 gitlab-runner
時的設定檔不會在 container 重新運行時遺失。
選項一:使用本地端的系統 volume 掛載來啟動 Runner 容器
選項二:使用 Docker volumes 來啟動 Runner 容器
建立 Docker volume
1$ docker volume create gitlab-runner-config
使用步驟一建立的 volume 來啟動 GitLab Runner 容器
透過以上的兩個方法(二擇一),我們就可以成功的在 Docker 上建立並運行 gitlab-runner
了!
其他注意事項
更新 container
當今天我們修改了
config.toml
的檔案後,若想更新 gitlab-runner 的 container,可以透過以下的指令來完成。1$ docker restart gitlab-runner
讀取 GitLab Runner 的紀錄黨
1$ docker logs [container name]