- What are you seeing, and how does that differ from what you expect to see?
TLDR of my goal, have a single (or as few as possible) local caches for the configuration.
I have been on a small adventure figuring out how the docker runner caching works.
I am now in the situation where I have a single runner configured, with concurrency of 4 and a “global” pipeline cache configured, with a fixed key, but I’m still slightly confused around the volumes in use.
On the host for the runner when looking at the docker volumes after running the pipeline detailed below I see a whole bunch of volumes.
DRIVER VOLUME NAME local runner-6kaxapsy-project-16-concurrent-0-cache-3c3f060a0374fc8bc39395164f415a70 local runner-6kaxapsy-project-16-concurrent-0-cache-904f6ed42e0fa2b14c1d7a2ed6f1875e local runner-6kaxapsy-project-16-concurrent-0-cache-c33bcaa1fd2c77edfc3893b41966cea8 local runner-6kaxapsy-project-16-concurrent-1-cache-3c3f060a0374fc8bc39395164f415a70 local runner-6kaxapsy-project-16-concurrent-1-cache-904f6ed42e0fa2b14c1d7a2ed6f1875e local runner-6kaxapsy-project-16-concurrent-1-cache-c33bcaa1fd2c77edfc3893b41966cea8 local runner-6kaxapsy-project-16-concurrent-2-cache-3c3f060a0374fc8bc39395164f415a70 local runner-6kaxapsy-project-16-concurrent-2-cache-904f6ed42e0fa2b14c1d7a2ed6f1875e local runner-6kaxapsy-project-16-concurrent-2-cache-c33bcaa1fd2c77edfc3893b41966cea8 local runner-6kaxapsy-project-16-concurrent-3-cache-3c3f060a0374fc8bc39395164f415a70 local runner-6kaxapsy-project-16-concurrent-3-cache-904f6ed42e0fa2b14c1d7a2ed6f1875e local runner-6kaxapsy-project-16-concurrent-3-cache-c33bcaa1fd2c77edfc3893b41966cea8
I discovered in some docs that these volume names are in the following format:
I was expecting to have difference caches per concurrent job as I have already read about that in other gitlab tickets.
However I do not understand why the
md5-of-path is differing and I end up with 12 volumes, when the same path of
mediawiki is defined, with the same cache key.
This is on GitLab Community Edition 13.12.9
This is a TLDR version of my config.
The full work in progress file can be found here
image: docker:19.03.12 cache: - key: mediawiki paths: - mediawiki services: - name: docker:19.03.12-dind # Use a registry mirror to avoid hitting docker hub too much as there is a rate limit of 100 pulls per 6 hours command: ["--registry-mirror", "https://mirror.gcr.io"] integration: parallel: matrix: - TEST: docker-mw-extra-commands.sh - TEST: docker-mw-install-all-the-dbs.sh - TEST: docker-mw-mysql-suspend-resume-destroy.sh before_script: - ./tests/cache-mediawiki.sh - ./tests/setup.sh script: - ./tests/$TEST
Some general questions I have some up with that despite much googling I think I havn’t found certain answers:
- Do these 12 volumes actually mean that separate caches are used? (testing indicates maybe)?
- Is the hash at the end of the volume name actually the path? (I only found this reference in 1 doc page so far)