GitLab-CI Multi Runner php 作曲家缓存
Posted
技术标签:
【中文标题】GitLab-CI Multi Runner php 作曲家缓存【英文标题】:GitLab-CI Multi Runner php composer cache 【发布时间】:2016-02-02 10:50:35 【问题描述】:我将 gitlab-ci-multi-runner 与 docker 容器一起使用。一切都很好,但是 docker 容器不会保留 composer
缓存,因此在每次运行时 composer
会一次又一次地下载依赖项,这需要很多时间。有什么方法可以配置gitlab-ci-runner
docker 容器以保留composer
缓存或在每次运行时挂载一个卷以保留composer
缓存?
【问题讨论】:
【参考方案1】:您可以通过在runner configuration 文件中导出COMPOSER_CACHE_DIR
环境变量来更改作曲家缓存路径,然后在[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】:您可以修改作曲家缓存路径并将内容写入 docker 卷。
该存储是持久的,可以跨容器共享。
参考:
https://gitlab.com/gitlab-org/gitlab-runner/blob/master/docs/configuration/advanced-configuration.md#volumes-in-the-runnersdocker-section https://docs.docker.com/engine/admin/volumes/volumes/【讨论】:
以上是关于GitLab-CI Multi Runner php 作曲家缓存的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab CI runner 无法暴露嵌套 Docker 容器的端口