作为Jenkins Slave的Docker容器(构build代理)

我有一个jenkins大师在一个容器内部运行…我正在使用Docker容器作为Jenkins Slave(构build代理), 在一个separete虚拟机上运行我的CIpipe道。 这个Docker容器(构build代理)将在CIpipe道运行时创build; 。 一旦构build完成,Docker容器将被销毁。 为了达成这个:

  • 我使用docker插件如下:

在这里input图像说明

  • 这我的jenkinsfile代码:
node('docker') { stage('Checkout Code') { checkout scm } stage('Build') { withMaven { sh 'mvn clean install' } } } 

当我运行我的peline时,每件事情都是正确的:

但问题是关于构build结果(.war)
这个档案是转移到主工作区还是用容器销毁? 如果第二种情况,那么我怎样才能恢复build立结果,jenkins大师追求CI过程?

 [INFO] Installing /home/jenkins/workspace/Build_pipeline_team/target/Teams.war to /home/jenkins/.m2/repository/teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.war [INFO] Installing /home/jenkins/workspace/Build_pipeline_team/pom.xml to /home/jenkins/.m2/repository/teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:12 min [INFO] Finished at: 2017-11-15T03:40:13+00:00 [INFO] Final Memory: 21M/51M [INFO] ------------------------------------------------------------------------ [jenkins-maven-event-spy] INFO generated /home/jenkins/workspace/Build_pipeline_team@tmp/withMaven673f8d6e/maven-spy-20171115-033800-6375412806014049683204.log [Pipeline] } [withMaven] artifactsPublisher - Archive artifact pom.xml under teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.pom [withMaven] artifactsPublisher - Archive artifact target/Teams.war under teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.war [withMaven] junitPublisher - Archive test results for Maven artifact teams:Teams:1.0-SNAPSHOT generated by maven-surefire-plugin:test (default-test): target/surefire-reports/*.xml 

将节点封装到节点中时,所有内容都将在该节点上运行。 因此,当build造完成时,战争将与容器一起销毁。

你有多种select来保持战争。

maven的方式是将工件部署到一个如联结的复制品。

Anothejenkins的另一种select就是把这个战争藏在奴隶身上,一旦build造完成并将其重新划归主人。 这将有效地将装载的文件从副本复制回主节点。