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

如何在.gitlab-ci.yml中的docker容器中装入卷?,docker,gitlab-ci-runner,Docker,Gitlab Ci Runner,我正在使用.gitlab ci.yml和docker作为Android项目上的gitlab ci运行程序。测试运行结束时,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 generati

我正在使用
.gitlab ci.yml
和docker作为Android项目上的gitlab ci运行程序。测试运行结束时,
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

我希望能够访问这些文件,但没有提到如何像docker run-v:/builds/org/…那样装载卷,我建议不要从主机装载CI卷。 如果确实需要,则必须相应地配置运行程序(
config.toml
)。 如果您使用的是
shared
运行程序,您永远不知道特定构建将在哪个系统上执行

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

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

在下面,您可以找到我用于构建docker映像的runner的配置(
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

在仔细阅读gitlab-ci.yml文档后,我意识到我走错了路。使用@mgansler建议的工件对我很有效。@Martin我使用gitlab 11.9.8在k8s上安装了gitlab runner,通过k8s集成UI。现在,在安装之后,我似乎无法修改runner的配置。我使用kubeadm设置我的k8s群集。我想将/var/run/docker.sock从主机装载到构建代码的容器中。关于如何使用工件访问gitlab管道执行期间生成的文件(即使管道失败)的示例: