web-dev-qa-db-ja.com

.gitlab-ci.ymlのDockerコンテナにボリュームをマウントするにはどうすればよいですか?

.gitlab-ci.ymlとdockerをAndroidプロジェクトのGitLabCIランナーとして使用しています。テスト実行の最後に、gradlewはテスト結果をxmlに保存します。ビルドディレクトリの下のhtml:

Finished generating test XML results (0.001 secs) into: /builds/org/project/sdk/build/test-results/release
 Generating HTML test report...
Finished generating test html results (0.002 secs) into: /builds/org/project/sdk/build/reports/tests/release

これらのファイルにアクセスしたいのですが、 documentation には、docker run -v <path>:/builds/org/...のようにボリュームをマウントする方法が記載されていません。

7
Travis Holton

CIのホストからボリュームをマウントしないようにアドバイスします。本当に必要な場合は、それに応じてランナーを構成する必要があります(config.toml)。 sharedランナーを使用している場合、特定のビルドがどのシステムで実行されるかはわかりません。

より良い解決策は、テスト結果を アーティファクト として定義することだと思います。

これにより、最新のビルドだけでなく、古いビルドでもテスト結果を利用できます。

以下に、docker-imagesの構築に使用するランナーの構成(config.toml)を示します。 /var/run/docker.sockを、ビルド結果を最終的に配置するディレクトリに置き換えることができます。

[[runners]]
  name = "Docker"
  url = "https://mygitlab/ci"
  token = "mytoken"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
  [runners.cache]
    Insecure = false
8
Martin