I’m trying to set up GitLab CI/CD for my private instance, but whenever I start a build job, it fails with this error message:
Running with gitlab-runner 16.4.1 (d89a789a)
on run1 pXbn4uCQS, system ID: s_6374e561057f
Preparing the "docker" executor 00:09
Using Docker executor with image registry.plexor.net/alpine:latest ...
WARNING: Container based cache volumes creation is disabled. Will not create volume for "/cache"
ERROR: Preparation failed: creating cache volume: creating docker volume: Error response from daemon: create runner-pxbn4ucqs-project-1-concurrent-0-7b1a4a19a4b679d7-cache-c33bcaa1fd2c77edfc3893b41966cea8: quota size requested but no quota support (manager.go:203:0s)
Will be retried in 3s ...
My setup is as follows:
GitLab running in a dedicated VM (installed using the Linux RPM package).
gitlab-runner is running as a systemd service in a separate VM, and is configured to run build jobs in Docker containers.
Both GitLab and gitlab-runner are on version 16.4.1, and both are running on fully updated instances of openSUSE Leap 15.5.
There is no mention of quotas in the setup instructions of gitlab-runner, so I’m a bit confused about what the problem is.
Even more confusing, the error occurs even if I disable the cache volume, as shown in the error message above.
Can anyone here shed some light on what’s going wrong?
I expected so. Switch to Use the BTRFS storage driver | Docker Docs
In general, I do not recommend running Docker on Btrfs, there have been bunch of issues in the past and I kind of do not trust it anymore.
I think overlay2 is supported on Btrfs, since kernel 5.19 (or something like that), which I am not sure openSuse Leap 15.5 has (or the required changes were backported).
Thank you for the hint. I tried to switch to the BTRFS storage driver, but it didn’t help.
Then I reinstalled the OS for the runner, this time with ext4 as the file system, and I recreated the setup of the runner (except both gitlab and gitlab-runner are at version 16.5.0 now). But the same error still occurs whenever I try to launch a build job:
Running with gitlab-runner 16.5.0 (853330f9)
on run1 LuVdWFQSi, system ID: s_99f568c3612f
Preparing the "docker" executor 00:12
Using Docker executor with image registry.plexor.net/alpine:latest ...
Using helper image: registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-853330f9
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-853330f9 ...
Using docker image sha256:dcb973b518cf1c49d1ec7c327ba7e1a0978cfee5845d75ad10e45ef72b79a3e2 for registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-853330f9 with digest registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper@sha256:06704ac91ed7f81c38d679b7863f31610072d6c8a9741a14b7ef9333ab5638be ...
ERROR: Preparation failed: adding cache volume: creating docker volume: Error response from daemon: create runner-luvdwfqsi-project-1-concurrent-0-cache-3c3f060a0374fc8bc39395164f415a70: quota size requested but no quota support (manager.go:203:0s)
Will be retried in 3s ...
That was it - removing those lines fixed the issue.
The configuration I used comes from your documentation, so perhaps you have to amend it, or at least explain what the removed part does and point out it’s optional: Docker executor | GitLab
OK… but there was a benefit of this option, right? To limit too large docker volumes within the GitLab workflow. Which storage drivers are all supported? Or is it about the backing filesystem?
Could you provide an easy way to migrate to that other filesystem or storage driver (ideally not btrf).
But I fully agree, please remove this section from the example. It’s explain further down in the documentation as optional.