web-dev-qa-db-ja.com

GitLab-CIマルチランナーphp composer cache

Dockerコンテナでgitlab-ci-multi-runnerを使用しています。すべてが順調に進んでいますが、Dockerコンテナはcomposerキャッシュを保持しないため、実行のたびにcomposerは依存関係を何度もダウンロードしますが、これには多くの時間がかかります。 composerキャッシュを保持するようにgitlab-ci-runner dockerコンテナーを構成する方法、またはcomposerキャッシュが保持される各実行でボリュームをマウントする方法はありますか?

21
Arman P.

composerキャッシュパスを変更して、Dockerボリュームに書き込むことができます。

そのストレージは永続的であり、コンテナー間で共有できます。

参照:

8
Jens A. Koch

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"
37
BrokenBinary