あらすじ
最近の個人開発ではGitlabを主に利用しており、ちょくちょくGitlab CIを利用しています。普段はGitlab SaaS Runnerでも十分枠が足りており、特に問題ないのですが、Intel N100の入った安いPCが手に入ったので、今後更に色々なことをCIでさせるため、せっかくなのでSelf-hosted runnerセットアップしてみます。
前提条件(用意したもの)
- LubuntuをインストールしたPC
- Windowsをサーバーにするのは無しなので、既にWin11が入ったボリュームを分割してLubuntuを入れておきました。
- (ボリュームを分けてUSBからブート/インストールするだけでした)
- Windowsをサーバーにするのは無しなので、既にWin11が入ったボリュームを分割してLubuntuを入れておきました。
- Gitlab.com Org
- この記事では セルフホストなGitlabではなく、SaaSとしてのGitlabを使います
- Dockerのインストール
- 直接ランナーをインストールするのは不安なのでDockerを使って導入しました
やったこと
- 1 設定ファイル格納用のDockerボリューム作成
docker volume create gitlab-runner-config
- 2 GitlabRunnerの設定ウィザード実行
-
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
- ウィザード1 Gitlabのエンドポイント入力
https://gitlab.com/
- ウィザード2 Runnerのトークンを入力
- Gitlab.com Org内 左メニュー -> CI/CD -> Runners ->
New group runner
から発行したもの - タグ名やDetailsはお好みで設定
- Maximum job timeoutは ひとまず 6時間(21200)に設定しました
- Gitlab.com Org内 左メニュー -> CI/CD -> Runners ->
- ウィザード3 適当な設定識別名を入力
- ローカルの設定ファイル内にのみ使われると記載がありました
- ウィザード4 ランナーの実行方法を指定
- 色々ありますが今回は
docker
を指定
- 色々ありますが今回は
- ウィザード5 ランナーのデフォルトイメージを指定
- Dockerの場合 何もCIに指定しなかった場合に利用するイメージを指定します
- とりあえず
debian:12-slim
にしました
- ウィザード6 設定完了
- 指定した gitlab-runner-configボリュームに設定が格納されます
- ウィザード1 Gitlabのエンドポイント入力
-
- 3 GitlabRunnerの実行
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
- 4 Gitlab公式サイトの Runnerを確認して Active になっていれば設定完了!
備考
- 同じトークンを使いまわして 別のコンテナを立てれば 2ジョブ同時に1台で処理できそうです (未検証)
参考 (公式サイト)
公式サイトに全て書かれていました