带有writeFile的Jenkinsfile在docker容器里面?

时间:2016-11-01 20:14:21

标签: docker jenkins-pipeline jenkinsfile

如果我有一个带有

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  

inside将:

     
      
  1. 自动抓取从属设备和工作空间(没有额外的节点块   必需的)。
  2.   
  3. 将请求的图像拉到Docker服务器(如果尚未缓存)。
  4.   
  5. 启动运行该图像的容器。
  6.   
  7. 使用安装Jenkins工作区作为容器内的“卷”   相同的文件路径。
  8.   

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