2

如果我有一个 Jenkinsfile

docker.image('foo').inside {
    writeFile file: bar, text: baz
}

该文件被写入 Jenkins 代理的工作区,而不是在容器内,对吗?有没有一种理智的方法可以在容器中写入文件?

我在网上能找到的最接近的东西是https://issues.jenkins-ci.org/browse/JENKINS-33510。我想我可以使用sh带有 here-doc 的步骤,但这听起来很丑陋。

4

1 回答 1

1

容器中有一个工作区,您可以使用writeFiles. 但它也与主机节点的工作区共享,因为它是作为卷安装的。

inside将要:

  1. 自动抓取从站和工作区(不需要额外的节点块)。
  2. 将请求的图像拉到 Docker 服务器(如果尚未缓存)。
  3. 启动一个运行该映像的容器。
  4. 使用相同的文件路径将 Jenkins 工作区作为容器内的“卷”安装。

您可以在inside此处查看更多详细信息:https ://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/chapter-docker-workflow.html

于 2016-11-04T13:41:29.483 回答