💡

コンテナでgitlab-runnerを構築

2023/11/26に公開

本当は、もう一台別のPCを使って構築したいんだけど・・・
ものを増やせないので、コンテナでgitlab-runnerを構築することにした。

OS:Ubuntu22.04
GitLab:15.11.2
GitLab の URLの後ろに/helpをつけると確認できる
なので、gitlab-runner は 15.11.1を使うことにする。

参照したページはこちら

Ubuntuにはすでにdockerが使える状態になっているので、
Option 2: Use Docker volumes to start the Runner container
ここから始める

利用するgitlab-runnerのバージョン "v15.11.1" は、こちらのページで確認する

1.docker volumeを作成する

docker volume create gitlab-runner-config

2.上記で作成した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:v15.11.1

※データ永続化のためにvolumeを使用する
runnerのregister をする

volumeを使用するため、コンテナvolume上に設定ファイルが配置されるようにする(バージョンにも注意)

docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:v15.11.1 register

登録に必要な情報を入力していく

Runtime platform                                    arch=amd64 os=linux pid=7 revision=0d8a024e version=15.11.1
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://hogehoge     ⇦ GitLab の URL を入力
Enter the registration token:
xxxxxxxxxxxxxxxx    ⇦ GitLab のプロジェクトの setting-CI/CD-Runners に記載されている registration token を入力
Enter a description for the runner:
[8047566d505f]: docker-runner ⇦ お好みの名称を入力
Enter tags for the runner (comma-separated):
ci-check  ⇦ お好みのタグ名を入力
Enter optional maintenance note for the runner:
docker-container ⇦ お好みのランナー名称を入力 
Registering runner... succeeded                     runner=hogehoge
Enter an executor: ssh, docker-autoscaler, docker+machine, docker-ssh+machine, instance, custom, docker, parallels, shell, virtualbox, kubernetes, docker-windows, docker-ssh:
docker ⇦ 今回はexecuterとしてdockerを使うので、dockerと入力
Enter the default Docker image (for example, ruby:2.7):
Ubuntu22.04  ⇦ 使いたいDockerイメージ、この場合は、Ubuntu22.04を指定
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

コンテナボリューム内に保存した設定ファイルを直接編集する場合

docker cp gitlab-runner:/etc/gitlab-runner/config.toml .
vim config.toml
docker cp ./config.toml gitlab-runner:/etc/gitlab-runner/config.toml
docker restart gitlab-runner

こちらも参考にしました。

gitlab-runner をコンテナで動作させる方法
概要 環境 gitlab-runner コンテナの起動 register する untagged jobs も
hawksnowlog.blogspot.com
動作確認も忘れずに。

.gitlab-ci.yml

stages:
  - check

test_job:
  stage: check
  script:
    - pwd
    - echo "$CI_PROJECT_URL"

正常終了すればOKです。

dockerもgitlabのページも英語
英語の勉強がてら日本語訳にしようかな?

Discussion