Hosted runners on Linux
DETAILS: Tier: Free, Premium, Ultimate Offering: GitLab.com
Hosted runners on Linux for GitLab.com run on Google Cloud Compute Engine. Each job gets a fully isolated, ephemeral virtual machine (VM). The default region is us-east1
.
Each VM uses the Google Container-Optimized OS (COS) and the latest version of Docker Engine running the docker+machine
executor.
The machine type and underlying processor type might change. Jobs optimized for a specific processor design might behave inconsistently.
Untagged jobs will run on the small
Linux x86-64 runner.
Machine types available for Linux - x86-64
GitLab offers the following machine types for hosted runners on Linux x86-64.
Runner Tag | vCPUs | Memory | Storage |
---|---|---|---|
saas-linux-small-amd64 (default) |
2 | 8 GB | 30 GB |
saas-linux-medium-amd64 |
4 | 16 GB | 50 GB |
saas-linux-large-amd64 (Premium and Ultimate only) |
8 | 32 GB | 100 GB |
saas-linux-xlarge-amd64 (Premium and Ultimate only) |
16 | 64 GB | 200 GB |
saas-linux-2xlarge-amd64 (Premium and Ultimate only) |
32 | 128 GB | 200 GB |
Machine types available for Linux - Arm64
GitLab offers the following machine type for hosted runners on Linux Arm64.
Runner Tag | vCPUs | Memory | Storage |
---|---|---|---|
saas-linux-medium-arm64 (Premium and Ultimate only) |
4 | 16 GB | 50 GB |
saas-linux-large-arm64 (Premium and Ultimate only) |
8 | 32 GB | 100 GB |
Container images
As runners on Linux are using the docker+machine
executor,
you can choose any container image by defining the image
in your .gitlab-ci.yml
file.
Please be mindful that the selected Docker image is compatible with the underlying processor architecture.
If no image is set, the default is ruby:3.1
.
Docker-in-Docker support
Runners with any of the saas-linux-<size>-<architecture>
tags are configured to run in privileged
mode
to support Docker-in-Docker.
With these runners, you can build Docker images natively or run multiple containers in your isolated job.
Runners with the gitlab-org
tag do not run in privileged
mode and cannot be used for Docker-in-Docker builds.
.gitlab-ci.yml
file
Example To use a machine type other than small
, add a tags:
keyword to your job.
For example:
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"
Pre-clone script (removed)
This feature was deprecated in GitLab 15.9
and removed in 17.0.
Use pre_get_sources_script
instead.