Jenkins管道中的嵌套泊坞代理

时间:2017-08-17 06:37:20

标签: jenkins jenkins-pipeline

我有以下设置:

  • Jenkinsmaster,没有安装码头工具
  • Jenkinsslave,安装了docker,标签dockerslave

当我运行以下管道时:

pipeline {
  agent { node { label 'dockerslave' } } 
  stages {
    stage('Example Build') {
        agent { docker { image 'maven:3-alpine' } } 
        steps {
            echo 'Hello, Maven'
            sh 'mvn --version'
        }
    }
    stage('Example Test') {
        agent { docker { image 'openjdk:8-jre' } }
        steps {
            echo 'Hello, JDK'
            sh 'java -version'
        }
    }
  }
}

我得到以下logoutput:

    [Pipeline] node
    Running on dockerslave in /home/jenkins/workspace/docker-
   declarative
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Example Build)
    [Pipeline] node
    Still waiting to schedule task
    There are no nodes with the label ?latest?

作业不会继续并挂起。 这有什么问题?

1 个答案:

答案 0 :(得分:1)

问题是失踪:

reuseNode true

固定的例子:

pipeline {
  agent { 
  node { label 'dockerslave' } } 
  stages {
    stage('Example Build') {
        agent { 
            docker {
                reuseNode true 
                image 'maven:3-alpine' 
            } 
        } 
        steps {
            echo 'Hello, Maven'
            sh 'mvn --version'
        }
    }
    stage('Example Test') {
        agent { 
            docker {
                reuseNode true 
                image 'openjdk:8-jre' 
            } 
        } 
        steps {
            echo 'Hello, JDK'
            sh 'java -version'
        }
    }
  }
}