首页 文章

如何在特定的奴隶中限制jenkins管道码头代理?

提问于
浏览
5

我有几个jenkins从属配置,只有标签 dockerserver 有docker env,那么我怎么能限制jenkins管道docker代理在这个slave?

Jenkinsfile 下方不起作用, agentstage 将覆盖已定义的从属 dockerserver

pipeline {
    agent { label 'dockerserver' }
    stages {
        stage('Back-end') {
            agent {
                docker { image 'maven:3-alpine' }
            }
            steps {
                sh 'mvn --version'
            }
        }
        stage('Front-end') {
            agent {
                docker { image 'node:7-alpine' }
            }
            steps {
                sh 'node --version'
            }
        }
    }
}

它可能会选择其他没有支持docker的slave

有什么建议吗?

2 回答

  • 3

    在更多地阅读了指南后,注意到它被陈述为https://jenkins.io/doc/book/pipeline/docker/#specifying-a-docker-label .

    enter image description here

    它应在jenkins全局(系统)配置中配置

  • 5

    刚出现同样的问题,似乎对我有用:

    pipeline {
        agent { label 'dockerserver' } // if you don't have other steps, 'any' agent works
        stages {
            stage('Back-end') {
                agent {
                    docker {
                      label 'dockerserver'  // both label and image
                      image 'maven:3-alpine'
                    }
                }
                steps {
                    sh 'mvn --version'
                }
            }
            stage('Front-end') {
                agent {
                  docker {
                    label 'dockerserver'  // both label and image
                    image 'node:7-alpine' 
                  }
                }
                steps {
                    sh 'node --version'
                }
            }
        }
    }
    

相关问题