如何在 .gitlab-ci.yml 的 docker 容器中安装卷?

How do I mount a volume in a docker container in .gitlab-ci.yml?

我在一个 Android 项目中使用 .gitlab-ci.yml 和 docker 作为 GitLab CI 运行器。测试运行结束时,gradlew将测试结果保存在build目录下的xml和html中:

1
2
3
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

我希望能够访问这些文件,但文档没有提到如何像使用 docker run -v <path>:/builds/org/... 那样安装卷。


我建议不要从主机为您的 CI 安装卷。
如果你真的想要,你必须相应地配置运行器 (config.toml)。
如果您使用 shared 运行器,您永远不知道特定构建将在哪个系统上执行。

我认为更好的解决方案是将测试结果定义为工件。

这样,测试结果可用于旧版本,而不仅仅是最新版本。

您可以在下面找到我用于构建 docker-images 的跑步者的配置 (config.toml)。您可以将 /var/run/docker.sock 替换为您希望构建结果结束的目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
[[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