在将docker-container用作jenkins-build-slave时,如何在工作区中持久保留构建目录?

时间:2018-10-19 05:45:58

标签: jenkins-plugins jenkins-slave jenkins-docker

我正在使用docker容器作为詹金斯建立奴隶。所有构建从属,jenkins主节点都是在同一主机上运行的docker容器。 (没有其他虚拟机)

以下是我用来构建角度应用程序的docker-slave模板。

docker-1

docker-2

  1. 这些是带有sshds的docker-slaves。公钥是使用env变量注入的。
  2. 构建从属docker映像已安装了npm和angular-cli。

Jenkins文件如下。我无法更改Jenkins文件。因此,上述构建从站已在jenkinsfile中标记为节点。

pipeline {


agent {
    node {
      label 'ng6'
    }

  }
  stages {
    stage('build && SonarQube analysis') {
      steps {
        withSonarQubeEnv('XX SonarQube') {
          sh '''
             npm install
             ts-node git.version.ts
             ng build --prod
             (cd dist ; tar -czf ../xx-ng.tar.gz.)
           '''
         }
      archiveArtifacts(artifacts: 'xx-ng.tar.gz', fingerprint: true)
    }
}
  1. 构建成功运行。我能够拿到手工艺品

我在做什么 我将在docker模板配置中挂载.npm和node_modules。 (-v)

我想要的

更快的构建。我想使用docker volume mount选项保留该工作空间目录

/home/jenkins/workspace/xx-ng_master-ZWS24TQFDFQRGZ3QMEVULORQISDY3BPEWLM7KFGJ42I33NOQFULA

因此node_modules应该是持久的,并且构建会更快。如何获取该目录路径并将其放入docker代理模板中?

<Path_to_workspace>/<Path_build>

0 个答案:

没有答案