Skip to content

Instantly share code, notes, and snippets.

@makotot
Last active May 22, 2024 14:20
Show Gist options
  • Save makotot/561166643ff8af6cb7de49e56ae745af to your computer and use it in GitHub Desktop.
Save makotot/561166643ff8af6cb7de49e56ae745af to your computer and use it in GitHub Desktop.
gitlab-runner
  • https://docs.gitlab.com/runner/install/
    • dockerコンテナーで動かせる
    • runner自体はgoで書かれたOSS
      • バイナリー
      • 言語特有の制限などない
    • runnerインストールしたらGitLabインスタンスへ登録が必要
    • runnerは各種OSでインストールできる
    • セキュリティーとパフォーマンスの面から、GitLabインスタンスをホストする環境とrunnerは別にする必要がある
    • システム要件
      • ユースケース特有の変数に依存
      • 変数に応じたサイズ設定、増減ができる
        • ジョブのCPU負荷、メモリー使用量
        • 同時ジョブ実行数、開発中プロジェクト
    • FIPS準拠
  • MacOS
  • Dockerコンテナー
    • https://docs.gitlab.com/runner/install/docker.html
    • GitLab Runner Dockerイメージ
      • docker run <chosen docker options...> gitlab/gitlab-runner <runner command and options...>
      • docker run --rm -t -i gitlab/gitlab-runner --help
    • dockerがインストール済みであること
    • コンテナー再起動時に設定を維持するオプションを設定する
      • session_server使うなら、8093ポートを公開する
      • オートスケール機能でDockerマシーンエグゼキューターを使うなら、Dockerマシーンのストレージパスをマウントする
    • option
        1. ローカルシステムをマウント
        1. docker volume使う
        • docker volume create gitlab-runner-config
        • 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
          
        • 登録するまでrunnerコンテナーはジョブ受け付けない
  • runnerの登録
    • https://docs.gitlab.com/runner/register/index.html
    • runnerの登録は、runnerとGitLabインスタンスをリンクするプロセス
      • インスタンスからジョブを拾えるようにrunnerを登録する
    • 前提
      • runnerがインストール済み
      • dockerでrunner登録するなら、dockerコンテナーにrunnerインストール済み
    • 認証トークンで登録
      • runnerの認証トークンを得る
        • インスタンス、グループ、プロジェクトのrunnerを作る
        • config.tomlで認証トークンを探す
      • docker volumeならdocker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
    • ❯ docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
      
      Runtime platform                                    arch=arm64 os=linux pid=7 revision=44feccdf version=17.0.0
      Running in system-mode.
      
      Enter the GitLab instance URL (for example, https://gitlab.com/):
      https://gitlab.com/
      Enter the registration token:
      glrt-xxxxxxxxxxxxxxxx
      Verifying runner... is valid                        runner=xxx
      Enter a name for the runner. This is stored only in the local config.toml file:
      [aaaaaaaa]: test
      Enter an executor: virtualbox, kubernetes, docker-autoscaler, docker-windows, docker+machine, instance, custom, shell, ssh, parallels, docker:
      docker
      Enter the default Docker image (for example, ruby:2.7):
      ruby:2.7
      Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
      
      Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
      
    • config.toml変えたら変更を適用するために再起動
      • docker restart gitlab-runner
    • 最新を取得
      • docker pull gitlab/gitlab-runner:latest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment