Gitlab Runner on Alpine Linux
This is the Docker image for the Gitlab runner, running on Alpine Linux.
Alpine Version 3.14.0 (Released 2021-06-15)
Gitlab Runner Version 14.0.1
What is Alpine Linux?
Alpine Linux is a Linux distribution built around musl libc and BusyBox. The image is only 5 MB in size and has access to a package repository that is much more complete than other BusyBox based images. This makes Alpine Linux a great image base for utilities and even production applications. Read more about Alpine Linux here and you can see how their mantra fits in right at home with Docker images.
What is Gitlab Runner?
GitLab Runner is the open source project that is used to run your jobs and send the results back to GitLab. It is used in conjunction with GitLab CI, the open-source continuous integration service included with GitLab that coordinates the jobs.
- Minimal size only
- 50 MB and only 5 layers
- Memory usage is minimal on a simple install
:x86_64- 64 bit Intel/AMD (x86_64/amd64)
:aarch64- 64 bit ARM (ARMv8/aarch64)
:armhf- 32 bit ARM (ARMv7/armhf)
PLEASE CHECK TAGS BELOW FOR SUPPORTED ARCHITECTURES, THE ABOVE IS A LIST OF EXPLANATION
:latestlatest branch based (Automatic Architecture Selection)
:mastermaster branch usually inline with latest
:14.0.1-archversion tag (Automatic Architecture Selection)
:x86_64amd64 based on latest tag but amd64 architecture
:arm64v8Armv8 based on latest tag but arm64 architecture
:arm32v7Armv7 based on latest tag but arm architecture
Layers & Sizes
How to use this image
docker pull yobasystems/gitlab-runner sudo docker run -d --name=gitlab-runner --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/gitlab-runner/config:/etc/gitlab-runner yobasystems/gitlab-runner
Register runner with gitlab server
These can be passed at runtime as environment variables or by running the following command:
docker exec -it gitlab-runner /bin/sh gitlab-runner register -n --url https://gitlab.url.domain.co.uk/ci --registration-token eRp938AHcv8JiHi4hUip --executor docker --docker-image "yobasystems/gitlab-runner-docker" --docker-privileged
Sometimes it is needed to add the following
"/var/run/docker.sock:/var/run/docker.sock", in the example below you will see the placement.
concurrent = 1 check_interval = 0 [[runners]] name = "gitlab-runner001" url = "https://gitlab.url.domain.co.uk/ci" token = "eRp938AHcv8JiHi4hUip" executor = "docker" [runners.docker] tls_verify = false image = "yobasystems/gitlab-runner-docker:dind" privileged = true disable_cache = true volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"] shm_size = 0 [runners.cache]
Use like you would any other base image:
version: '2' services: gitlab-runner: privileged: true image: yobasystems/gitlab-runner stdin_open: true volumes: - /var/run/docker.sock:/var/run/docker.sock - /data/gitlab-runner/config:/etc/gitlab-runner tty: true