I'm using gitlab-ci-multi-runner with docker containers. Everything is going fine, but docker containers don't keep the composer
cache so in every run composer
downloads dependencies again and again, which takes a lot of time. Is there any way to configure gitlab-ci-runner
docker container to keep the composer
cache or mount a volume on each run where the composer
cache is kept?
You can change the composer cache path by exporting the COMPOSER_CACHE_DIR
environment variable in your runner configuration file, and then add a volume in the [runners.docker]
section to match it.
If you run gitlab-runner as root or with sudo, then your configuration file is located at /etc/gitlab-runner/config.toml
. Otherwise it's located at $HOME/.gitlab-runner/config.toml
.
# config.toml
[[runners]]
name = "Generic Docker Runner"
...
environment = ["COMPOSER_CACHE_DIR=/cache"]
executor = "docker"
[runners.docker]
...
volumes = ["/var/cache:/cache:rw"]
cache_dir = "/cache"
You could modify the composer cache path and write the stuff to a docker volume.
That storage is persistent and can be shared across containers.
Referencing:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With