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
The runners are configured to run in privileged
mode to support
Docker in Docker
to build Docker images natively or run multiple containers within your isolated job.
.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.