A GitLab Runner Docker image designed for Unraid, with automatic registration on first start.
Based on gitlab/gitlab-runner:alpine — adds auto-registration via environment variables and ships with an Unraid Community Applications template.
docker run -d \
--name gitlab-runner \
--restart unless-stopped \
-e CI_SERVER_URL=https://gitlab.com \
-e RUNNER_TOKEN=glrt-xxxxxxxxxxxx \
-e RUNNER_EXECUTOR=docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mnt/user/appdata/gitlab-runner:/etc/gitlab-runner \
mcgo/unraid-gitlab-runner- Go to the Apps tab in Unraid
- Search for GitLab Runner
- Click Install and fill in the template variables
- The runner will automatically register itself at your GitLab instance
If the template is not yet available in Community Applications:
- In Unraid, go to Docker > Add Container > Template Repositories
- Add:
https://github.com/mcgo/unraid-gitlab-runner - The template will appear under Docker > Add Container
- Go to your GitLab project/group/instance Settings > CI/CD > Runners
- Click New project runner (or group/instance runner)
- Configure the runner settings (tags, description, etc.) in the UI
- Copy the token (starts with
glrt-)
With modern tokens, tags and other settings are configured in GitLab's UI — the RUNNER_TAG_LIST, RUNNER_UNTAGGED, and RUNNER_LOCKED environment variables have no effect.
If you're using a legacy registration token, you can still pass RUNNER_TAG_LIST, RUNNER_UNTAGGED, and RUNNER_LOCKED as environment variables.
| Variable | Description | Default |
|---|---|---|
CI_SERVER_URL |
URL of your GitLab instance | — |
RUNNER_TOKEN |
Runner authentication token | — |
| Variable | Description | Default |
|---|---|---|
RUNNER_NAME |
Display name in GitLab | unraid-runner |
RUNNER_EXECUTOR |
docker or shell |
docker |
DOCKER_IMAGE |
Default image for CI jobs | alpine:latest |
RUNNER_CONCURRENT |
Max parallel jobs | 1 |
| Variable | Description | Default |
|---|---|---|
RUNNER_TAG_LIST |
Comma-separated tags (legacy tokens only) | — |
RUNNER_UNTAGGED |
Run untagged jobs (legacy tokens only) | — |
RUNNER_LOCKED |
Lock to project (legacy tokens only) | — |
DOCKER_PRIVILEGED |
Enable privileged mode for Docker executor | false |
DOCKER_VOLUMES |
Additional volumes, comma-separated | — |
UNREGISTER_ON_STOP |
Unregister runner on container stop | false |
CA_CERTIFICATES_PATH |
Path to custom CA cert inside container | — |
| Container Path | Recommended Host Path | Description |
|---|---|---|
/etc/gitlab-runner |
/mnt/user/appdata/gitlab-runner |
Runner configuration (persists registration) |
/var/run/docker.sock |
/var/run/docker.sock |
Docker socket (required for Docker executor) |
This image is available on:
- GHCR:
ghcr.io/mcgo/unraid-gitlab-runner - Docker Hub:
mcgo/unraid-gitlab-runner
MIT