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 作曲家缓存的主要内容,如果未能解决你的问题,请参考以下文章

使用 Windows Runner 上传工件

Gitlab CI runner 无法暴露嵌套 Docker 容器的端口

如何让 gitlab-runner 从指定文件中读取而不是 .gitlab-ci.yml?

gitlab-ci配置疑难备忘

通过 CI runner 将文件推送到 gitlab-ci

gitlab-ci实际中需要注意几点