GitLab-CI 多运行器 php 作曲家缓存

我正在将gitlab-ci-multi-runner与docker容器一起使用。一切都很好,但是 docker 容器不保留缓存,因此在每次运行中一次又一次地下载依赖项,这需要花费大量时间。有没有办法配置 Docker 容器以保留缓存或在每次运行时装载一个卷,其中保留缓存?composercomposergitlab-ci-runnercomposercomposer


答案 1

您可以通过导出运行器配置文件中的COMPOSER_CACHE_DIR环境变量来更改 composer 缓存路径,然后在 [runners.docker] 部分中添加一个卷以匹配它。

如果您以 root 或 sudo 身份运行 gitlab-runner,则您的配置文件位于 。否则,它位于 。/etc/gitlab-runner/config.toml$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"

答案 2

您可以修改 Composer 缓存路径并将内容写入 docker 卷。

该存储是持久的,可以在容器之间共享。

引用:


推荐