【发布时间】:2020-10-08 01:56:07
【问题描述】:
我有一个在 docker 代理上运行的 Jenkins 管道,每次它进入具有不同代理的阶段时,它都会更改 Jenkins 节点。如何强制它始终在同一个节点上运行?
我有 3 个节点:master、slave-1 和 slave-2。我的管道有时,只是一个例子,从使用 master 开始,然后当它调用代理 image-docker-1 时,它使用 slave-1 和然后当它调用代理 image-docker-2 时,它再次使用 master。
如何强制它始终使用 slave-1?我知道,如果我不使用 docker 作为代理,我可以使用类似的东西:
node (label: "slave-1") {
(...)
pipeline {
agent { label "slave-1 }
(...)
但我认为情况并非如此。
这是我的管道:
node {
properties([
pipelineTriggers(
[cron('H 00 * * 1-5') ]
)]
)
workloadPipeline = load("ImagePull.groovy")
workloadPipeline
}
pipeline {
options {
ansiColor('xterm')
timestamps()
}
agent none
environment {
TOKEN = credentials("token")
HOME = '.'
}
stages {
stage("initiating"){
agent {
docker {
image 'image-docker-1'
args '--entrypoint="" -u root -v /var/run/docker.sock:/var/run/docker.sock'
}
}
stages {
stage('docker 1 scanning') {
steps {
script {
workloadPipeline.loopImages(Images)
}
}
}
stage ('docker 1 test'){
(...)
}
}
}
stage('docker 2 scanning') {
agent {
docker {
image 'image-docker-2'
args '--entrypoint="" -u root -v /var/run/docker.sock:/var/run/docker.sock'
}
}
steps {
script {
workloadPipeline.Scanning()
}
}
}
}
}
【问题讨论】:
标签: jenkins