Runners are used to execute jobs in GitLab CI
Runner can be shared across the instance of GitLab
They can be specific to a group or project
Jobs select runners by specifying a tag
Firewall traversal for foreign datacenters
New default in 16.0 (May 2023)
Old runner registration behind disabled feature flag in 17.0
Removal of old runner registration in 18.0 (May 2025)
One token per instance, per group and per project
Credential leak causes a lot of work
Create a runner through the UI or the API
One token per runner
Supported executors: shell
, docker
, docker-windows
, docker-ssh
, ssh
, parallels
, virtualbox
, docker+machine
, docker-ssh+machine
, kubernetes
Jobs are executed in the context of the runner
Jobs are executed in a dedicated container / pod
docuum is able to remove least recently used images
Add runner to GitLab instance: Admin Area CI/CD Runners New instance runner
Configure runner: Check “Run untagged jobs”
Start runner (substitute token below)
# Switch to directory for this topic
cd ../160_runners
# Deploy GitLab runner
export CI_SERVER_URL=https://gitlab.seat<N>.inmylab.de
export CI_SERVER_TOKEN=<TOKEN>
export RUNNER_EXECUTOR=docker
docker compose --project-name gitlab \
--file ../100_reverse_proxy/compose.yml \
--file ../135_integrations/compose.yml \
--file compose.yml \
up -d