脚本化的Jenkinsfile Docker代理,如何指定redirectNode标志,这是必需的吗?

Chi*_*iri 5 jenkins jenkins-plugins jenkins-pipeline

根据此处引用的 jenkins文档,为确保在特定阶段定义的Docker 代理程序在管道中定义的同一节点上运行,必须将标志复用节点设置为true。

redirectNode 一个布尔值,默认为false。如果为true,请在管道的顶级指定节点上,在同一工作空间中而不是完全在新节点上运行容器。此选项对docker和dockerfile有效,并且仅在个体阶段的代理。

为了进行声明,可以使用

   agent {
                 docker {
                     image 'gradle-java:0.0.1'
                     reuseNode true
                 }
             }
Run Code Online (Sandbox Code Playgroud)

但是,我找不到如何在脚本管道中设置此示例。有人可以帮助您在脚本化管道中实现此目标吗?

Sam*_*tel 1

在新版本的声明式管道中,它得到了增强并建议使用label

agent {
    docker {
        image 'maven:3-alpine'
        label 'my-defined-label'
        args  '-v /tmp:/tmp'
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您想对脚本化管道执行相同的操作,请在 中提及代理标签名称node(agentName),就像

node("my-defined-label") {
  docker.image('maven:3-alpine').inside('-v $HOME/.m2:/root/.m2') {
        stage('Build') {
            sh 'mvn -B'
        }
   }
}
Run Code Online (Sandbox Code Playgroud)