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