I have a personal project that is docker-compose based which I’ve deployed to remote servers before in the past (a few years ago, using steps here), and recently attempting to redeploy it from a more recent self-hosted GitLab pipeline on Ubuntu 24.0.4 I get this error:
docker.errors.DockerException: Install paramiko package to enable ssh:// support
This issue is exactly as described on this ticket. The issue also seems to be OS specific as well as docker-compose version specific – I have docker-compose 1.29.2 on MacOS Sequoia and it works fine, but 1.29.2 on Ubuntu 24.04 or 22.04 fails with the above error.
The workaround as described by multiple comments on the ticket is to not use the version installed by apt-get, instead install a specific older/working version with pip instead:
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!