如果我有一个 Jenkinsfile
docker.image('foo').inside {
writeFile file: bar, text: baz
}
该文件被写入 Jenkins 代理的工作区,而不是在容器内,对吗?有没有一种理智的方法可以在容器中写入文件?
我在网上能找到的最接近的东西是https://issues.jenkins-ci.org/browse/JENKINS-33510。我想我可以使用sh
带有 here-doc 的步骤,但这听起来很丑陋。
如果我有一个 Jenkinsfile
docker.image('foo').inside {
writeFile file: bar, text: baz
}
该文件被写入 Jenkins 代理的工作区,而不是在容器内,对吗?有没有一种理智的方法可以在容器中写入文件?
我在网上能找到的最接近的东西是https://issues.jenkins-ci.org/browse/JENKINS-33510。我想我可以使用sh
带有 here-doc 的步骤,但这听起来很丑陋。
容器中有一个工作区,您可以使用writeFiles
. 但它也与主机节点的工作区共享,因为它是作为卷安装的。
inside
将要:
- 自动抓取从站和工作区(不需要额外的节点块)。
- 将请求的图像拉到 Docker 服务器(如果尚未缓存)。
- 启动一个运行该映像的容器。
- 使用相同的文件路径将 Jenkins 工作区作为容器内的“卷”安装。
您可以在inside
此处查看更多详细信息:https ://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/chapter-docker-workflow.html