Linux上でホストされるRunner
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
GitLab.com向けのLinux上でホストされるRunnerは、Google Cloud Compute Engineで実行されます。各ジョブは、完全に分離された一時的な仮想マシン(VM)を取得します。デフォルトのリージョンはus-east1です。
VMは、Google Container-Optimized OS(COS)と、docker+machine executorを実行するDocker Engineの最新バージョンを使用します。マシンタイプと基盤となるプロセッサタイプが異なる可能性があります。また、ジョブが特定のプロセッサ設計に最適化されている場合、動作に一貫性がない可能性があります。
タグなしジョブは、small Linux x86-64 Runnerで実行されます。
Linux - x86-64で使用可能なマシンタイプ
GitLabは、Linux x86-64上のホストされたRunnerに対して、次のマシンタイプを提供しています。
| Runnerタグ | vCPU | メモリ | ストレージ |
|---|---|---|---|
saas-linux-small-amd64(デフォルト) | 2 | 8 GB | 30 GB |
saas-linux-medium-amd64 | 4 | 16 GB | 50 GB |
saas-linux-large-amd64(PremiumおよびUltimateのみ) | 8 | 32 GB | 100 GB |
saas-linux-xlarge-amd64(PremiumおよびUltimateのみ) | 16 | 64 GB | 200 GB |
saas-linux-2xlarge-amd64(PremiumおよびUltimateのみ) | 32 | 128 GB | 200 GB |
Linux - Arm64で使用可能なマシンタイプ
GitLabは、Linux Arm64上のホストされたRunnerに対して、次のマシンタイプを提供しています。
| Runnerタグ | vCPU | メモリ | ストレージ |
|---|---|---|---|
saas-linux-small-arm64 | 2 | 8 GB | 30 GB |
saas-linux-medium-arm64(PremiumおよびUltimateのみ) | 4 | 16 GB | 50 GB |
saas-linux-large-arm64(PremiumおよびUltimateのみ) | 8 | 32 GB | 100 GB |
Linux Arm上でホストされるRunnerでDocker-in-Dockerを使用すると、ネットワーク接続の問題が発生する可能性があります。この問題は、Google CloudとDockerの最大伝送単位(MTU)値が一致しない場合に発生します。この問題を解決するには、クライアント側のDocker設定で--mtu=1400を設定してください。詳細については、イシュー473739を参照してください。
コンテナイメージ
Linux上のRunnerはdocker+machine executorを使用しているため、.gitlab-ci.ymlファイルでimageを定義することで、任意のコンテナイメージを選択できます。選択したDockerイメージが、プロセッサアーキテクチャと互換性があることを確認してください。
イメージが設定されていない場合、デフォルトはruby:3.1です。
Docker-in-Dockerのサポート
いずれかのsaas-linux-<size>-<architecture>タグが付いたRunnerは、Docker-in-Dockerをサポートするために、privilegedモードで実行するように設定されています。これらのRunnerを使用すると、Dockerイメージをネイティブにビルドしたり、分離されたジョブで複数のコンテナを実行したりできます。
gitlab-orgタグが付いたRunnerは、privilegedモードで実行されず、Docker-in-Dockerビルドには使用できません。
.gitlab-ci.ymlファイルの例
small以外のマシンタイプを使用するには、ジョブにtags:キーワードを追加します。次に例を示します。
job_small:
script:
- echo "This job is untagged and runs on the default small Linux x86-64 instance"
job_medium:
tags:
- saas-linux-medium-amd64
script:
- echo "This job runs on the medium Linux x86-64 instance"
job_large:
tags:
- saas-linux-large-arm64
script:
- echo "This job runs on the large Linux Arm64 instance"