By default, later stages will not run if a previous stage in your GitLab pipeline fails. If you have a manual job in a previous stage, not running that job will also block later stages from running automatically.
To allow a later stage to run, mark any optional/manual jobs with ‘allow_failure: true’
I just installed and configured a GitLab Runner on a separate Ubuntu 22.04 server. Following tips here and here, I’ve started the runner with ‘sudo gitlab-runner start’ and I’ve verified the config with ‘sudo gitlab-runner verify’, but the GitLab server is still showing the ‘never contacted this instance’ error:
Following the troubleshooting steps here, I used journalctl to view the logs:
Oct 19 14:36:24 proxmox-ubuntu2204-server systemd[1]: Started GitLab Runner. Oct 19 14:36:25 proxmox-ubuntu2204-server gitlab-runner[1264]: FATAL: failed to get user home dir: $HOME is not defined Oct 19 14:36:25 proxmox-ubuntu2204-server systemd[1]: gitlab-runner.service: Main process exited, code=exited, status=1/FAILURE Oct 19 14:36:25 proxmox-ubuntu2204-server systemd[1]: gitlab-runner.service: Failed with result 'exit-code'.
To set a home dir for the gitlab-runner user, I checked /etc/passwd, found the line for gitlab-runner and it has an entry towards the end of the line for /home/gitlab-runner, so that seems ok.
Following tips here, I edited the service config with:
sudo systemctl edit gitlab-runner
which edits /etc/systemd/system/gitlab-runner.service.d/override.conf and added this section:
[Service] Environment="HOME=/home/gitlab-runner"
Restarted the service with:
sudo systemctl restart gitlab-runner
checked the logs again with jornalctl and now we’re up and running, and the runner is reported as available on the Runners page. Done!
Oct 19 14:51:48 proxmox-ubuntu2204-server gitlab-runner[1400]: Runtime platform arch=amd64 os=linux pid=1400 revision=66a723c3 version=17.5.0 Oct 19 14:51:48 proxmox-ubuntu2204-server gitlab-runner[1400]: Starting multi-runner from /etc/gitlab-runner/config.toml... builds=0 max_builds=0 Oct 19 14:51:48 proxmox-ubuntu2204-server gitlab-runner[1400]: Running in system-mode. Oct 19 14:51:48 proxmox-ubuntu2204-server gitlab-runner[1400]: Oct 19 14:51:48 proxmox-ubuntu2204-server gitlab-runner[1400]: Configuration loaded builds=0 max_builds=1
I have a GitLab Runner using a Shell Executor that needs to build a Docker container. When it executes the first Docker command it gets this error:
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
If I logon as the gitlab-runnner user and try to execute docker commands manually I get this error:
$ docker ps permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/containers/json": dial unix /var/run/docker.sock: connect: permission denied
A quick Google and I need to add the gitlab-runner to the Docker group to grant it permission to execute Docker:
Setting up a new self-hosted GitLab, the pipeline for my project is stuck with this error:
… which looks like there are no runners available for the project. I know I have a runner available because I set one up yesterday, so taking a closer look.
In the CI/CD settings for my project, I think I see my shared runner:
Looking in the admin settings, it looks like when I set it up I used the tag ‘shared’:
The error says ‘no runners match all of the job’s tags: docker-test’, so I think what I need to do is change the tags on my runner to match. I edited the tags to remove ‘shared’ and replaced with ‘docker-test’ and now the job starts running! On to the next errors!