更新日:2026年3月17日
15分で読めます
GitLab RunnerはCI/CDパイプラインのジョブを、安定した速度で自動実行します。インストール・設定・最適化を通じて、より安全で再現性の高いビルドを実現しましょう。

CI/CDパイプラインを成功に導く陰の立役者、それが GitLab Runner です。.gitlab-ci.yml ファイルに定義されたジョブを実行し、テストの起動、アプリケーションのビルド、コードのデプロイを担います。
Runnerがなければ、パイプラインは設計図のままです。Runnerがあれば、それは具体的な動作として再現できるものになります。本記事では、GitLab Runnerとは何か、インストール・設定の方法、そして最大限に活用するためのベストプラクティスをご紹介します。
GitLab RunnerはオープンソースのGoで書かれたアプリケーションで、CI/CDパイプラインのジョブを実行します。デベロッパーがコードをプッシュすると、GitLabがパイプラインをトリガーし、利用可能なRunnerにジョブを振り分けます。RunnerはジョブをRunnerし、その結果(ログ、アーティファクト、ステータス)をGitLabに返します。
パイプラインとは、ジョブ(コンパイル、テスト、デプロイ)を自動化した一連の流れのことです。Runnerは、特定のマシン上でそれらを実行するエージェントです。RunnerのExecutorは、ジョブが実行される環境(Docker、Shell、Kubernetesなど)を定義します。
GitLab Runnerでは、アクセスを許可する対象に応じて、次のRunnerスコープを利用できます。
これらのRunnerは、2つの方法でホストできます。
GitLab Runnerのインストール時には、Executor(ジョブが実行される環境)を選択する必要があります。Executorの選択は、パイプラインのセキュリティ、パフォーマンス、柔軟性に直接影響します。
主なExecutorは以下のとおりです。
選択はニーズによって異なりますが、ほとんどのプロジェクトではDockerが最適です。Executorの詳細については、ドキュメントをご覧ください。
GitLab Runnerのインストール方法は、使用するOSとターゲット環境によって異なります。以下に代表的なシナリオをご紹介します。
Linuxは、特にサーバー側でセルフホスト型Runnerをホストする最も一般的な環境です。インストール方法は次の3通りです。
.debまたは.rpmパッケージ経由以下の例は、Debian/UbuntuにおいてGitLabリポジトリからパッケージをインストールする手順を示しています。
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt install gitlab-runner
apt-cache madison gitlab-runner
sudo apt install gitlab-runner=17.7.1-1 gitlab-runner-helper-images=17.7.1-1
gitlab-runnerの特定バージョンをgitlab-runner-helper-imagesの同バージョンなしにインストールしようとすると、次のようなエラーが発生する場合があります。
sudo apt install gitlab-runner=17.7.1-1
...
The following packages have unmet dependencies:
gitlab-runner : Depends: gitlab-runner-helper-images (= 17.7.1-1) but 17.8.3-1 is to be installed
E: Unable to correct problems, you have held broken packages.
sudo gitlab-runner register
プロジェクトにビルド固有の要件がある場合は、次の手順に従ってWindowsまたはmacOSにGitLab Runnerをインストールすることもできます。
DockerはGitLab Runnerをセットアップする最もシンプルかつ迅速な方法の一つです。複雑なインストール作業なしにDockerコンテナ内で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 exec -it gitlab-runner gitlab-runner register
KubernetesへのGitLab RunnerのインストールはGitLabのHelm Chartを使用します。これはKubernetesクラスター内にGitLab Runnerインスタンスをデプロイする公式の方法です。
GitLabのHelm ChartからGitLab Runnerをインストールする手順は以下のとおりです。
helm repo add gitlab https://charts.gitlab.io
helm search repo -l gitlab/gitlab-runner
helm repo update gitlab
values.yamlファイルでGitLab Runnerを設定した後、必要に応じてパラメーターを変更しながら次のコマンドを実行します。 # For Helm 3
helm install --namespace <NAMESPACE> gitlab-runner \
-f <CONFIG_VALUES_FILE> \
gitlab/gitlab-runner
<NAMESPACE>:GitLab RunnerをインストールするKubernetesの名前空間。<CONFIG_VALUES_FILE>:カスタム設定が含まれるvaluesファイルへのパス。作成方法はドキュメントをご参照ください。helm installコマンドに--version <RUNNER_HELM_CHART_VERSION>を追加してください。任意バージョンのHelm Chartをインストールできますが、新しいvalues.ymlファイルは古いバージョンと互換性がない場合があります。KubernetesでGitLab Runnerをインストールする詳細については、ドキュメントをご覧ください。
GitLab Runnerのインストールについてのよくあるご質問は、FAQをご参照ください。
インストール後、GitLab Runnerを登録することで、GitLabインスタンスからジョブを取得できるようになります。この手順では、インストール済みのRunnerを1つ以上のGitLabインスタンスに接続します。
GitLab Runnerの登録方法はいくつかあります。本記事では、認証トークンを使用したRunner登録に焦点を当てます。
前提条件
config.tomlファイル内のRunner認証トークンを確認する。Runner認証トークンのプレフィックスはglrt-です。Runnerが登録されると、設定内容はconfig.tomlファイルに保存されます。このファイルはGitLab Runnerのメイン設定ファイルで、RunnerとCI/CDジョブの実行に必要なすべての設定を含んでいます。このファイルはいつでも編集でき、変更内容はサービスの再起動なしに次のジョブから反映されます。
Runner認証トークンを使用してRunnerを登録するには、次の手順を実施します。
同一のホストマシン上で異なる設定を持つ複数のRunnerを登録するには、registerコマンドを繰り返します。また、同一の設定を複数のホストマシンに登録するには、各Runner登録で同じRunner認証トークンを使用してください。
非インタラクティブモードを使用して、追加の引数でRunnerを登録することもできます。
Linuxを例に挙げると:
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--token "$RUNNER_TOKEN" \
--executor "docker" \
--docker-image alpine:latest \
--description "docker-runner"
ワークフローにRunnerを組み込む前に、正常に動作しているかどうかを確認してください。
a. プロジェクト内で 設定 > CI/CD > Runners に移動します。
b. Runnerがアクティブかつ正常であることを確認します。
.gitlab-ci.ymlファイルを作成してシンプルなパイプラインでテストします。
test-runner:
stage: test
script:
- echo "Hello GitLab Runner"
- hostname
- date
tags:
- my-tags # ⚠️ Replace with YOUR runner's tags
設定が不適切なGitLab Runnerは、パフォーマンスの低下やセキュリティ上の問題を引き起こす可能性があります。CI/CDパイプラインを最大限に活用するためのベストプラクティスをご紹介します。
ubuntuではなくalpine)。これによりコンテナの起動時間を短縮できます。GitLab Runnerは、GitLabのCI/CDパイプライン、セキュリティテスト、完全な自動化と連携することで真の価値を発揮します。共有サービスモデルにおけるGitLab Runnerフリートの管理に関するベストプラクティスについては、ドキュメントもあわせてご覧ください。
このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
フィードバックを共有する