Auto-scale CI jobs with Gitlab Runner and the Hetzner Docker Machine driver
You can follow the official GitLab docs for configuring the GitLab Runner with docker machine, just use this image as a drop in replacement for
See the example
docker-compose.yaml below for the hetzner specific docker machine options.
Use this image instead of the
gitlab/gitlab-runner image and set
hetzner in your runner configuration.
concurrent = 1 check_interval = 0 [session_server] session_timeout = 1800 [[runners]] name = "docker-machine" url = "https://gitlab.com" token = "your-token" executor = "docker+machine" [runners.docker] tls_verify = false image = "docker:latest" privileged = true disable_cache = false volumes = ["/cache"] shm_size = 536870912 [runners.cache] [runners.machine] IdleCount = 0 IdleTime = 1800 MaxBuilds = 10 MachineDriver = "hetzner" MachineName = "runner-%s" MachineOptions = [ "hetzner-api-token=hetzner-api-token", "hetzner-image=ubuntu-18.04", "hetzner-server-type=cx31", ]
version: "3.8" services: hetzner-runner: image: mawalu/hetzner-gitlab-runner:latest volumes: - "./hetzner_config:/etc/gitlab-runner"
If you face docker problems at runtime (such as the one below), you can specify a Docker version in the
MachineOptions = [ "engine-install-url=https://releases.rancher.com/install-docker/19.03.9.sh", ]
Possible error that is caused by Docker:
ERROR: Error creating machine: Error running provisioning: Unable to verify the Docker daemon is listening: Maximum number of retries (10) exceeded driver=hetzner name=runner-xxx-xxx operation=create
See this issue for more information.
Currently this image is build using the
gitlab/gitlab-runner:latest image and the latest docker-machine hetzner plugin. If you need builds for another version feel free to open an PR.