はじめに
やりたいことはタイトルの通り。
公式ドキュメントを見れば分かると言いたいが、ちょっと苦戦したのでメモ。
実はローカルマシンではなくクラウド上の仮装マシン等に入れる場合もこの方法でいけるが、自分がローカルマシンに入れたのと、ローカルマシンに入れるパターンが多いと思ったのでこのタイトルにした。
環境
- GitLab 11.11.8
準備
1. Docker環境を用意する
OSに合わせてDocker for Mac, Docker for Windowsなどインストールする。
ここはいろんな資料がネットに落ちてるのでググってほしい。
参考
* DockerをMacにインストールする
* Docker for Windowsをインストール
* Install Docker Engine on Ubuntu
2. GitLab Runnerのセットアップ
公式ドキュメントにはローカルのファイルシステムをマウントする方法とDocker Volumeを使う方法の2つがあるが、後者を使うことにした。
以下ローカルマシンでコマンドを実行する。
2-1. config用のvolumeを作成する。
docker volume create gitlab-runner-config
2-2. 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
2-3. 立ち上げたコンテナを登録する
これを各GitLabプロジェクト毎に行う。
2-3-1. これを実行
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
2-3-2. 使用しているGitLabのURLを入力する
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
2-3-3. GitLabプロジェクトのトークンを入力する
トークンはGitLabプロジェクトの Settings->CI/CD->Runners
で確認できる。
Settings
は強権限が無いと閲覧できないので注意。
Please enter the gitlab-ci token for this runner
xxx
2-3-4. Runnerの説明を書く
Please enter the gitlab-ci description for this runner
[hostname] my-runner
2-3-5. Runnerに紐づけるタグをカンマ区切りで指定する
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
2-3-6. Runner Executerを指定する
今回は docker
を選んだ。
Docker以外でも実行できるらしい。
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
2-3-7. デフォルトイメージを指定する
今回は alpine:latest
にした
Please enter the Docker image (eg. ruby:2.6):
alpine:latest
2-3-8. Runnerが登録されたか確認する(2020/08/21 11:25更新)
GitLabプロジェクトの Settings->CI/CD->Runners->Runners activated for this project
を確認
Runnerの詳細ページに行き、IPアドレスがローカルマシンのIPアドレスと同じか確認する。
3. .gitlab-ci.ymlを設定する
適当なブランチで .gitlab-ci.yml
を作成する。
書き方は公式ドキュメントやグーグル先生を参照してほしい。
image: python:latest
stages:
- test
unittest:
stage: test
script:
- echo "hoge"
4. 適当にコミットをプッシュする
プッシュしたコミットを見るとCIの結果が表示されている。
おわりに
GitLab Runnerをローカルマシンで動かすことができた。
次はAWSのアクセスキーをGitLab Runnerで使う方法とか書きたい。