我配置了几个jenkins从属设备,只有observeForever()
标签有docker env,那么如何限制此从属设备中的jenkins管道docker代理?
dockerserver
下方不起作用,Jenkinsfile
内的agent
将覆盖定义的从属stage
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的奴隶
有什么建议吗?
答案 0 :(得分:6)
刚出现同样的问题,似乎对我有用:
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'
}
}
}
}
答案 1 :(得分:6)
更多地阅读指南后,注意到它已被陈述为https://jenkins.io/doc/book/pipeline/docker/#specifying-a-docker-label。
应在jenkins全局(系统)配置中配置