У меня есть конвейер Jenkins, который работает на docker агентах, и каждый раз, когда он входит в стадию с другим агентом, он меняет узел 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()
}
}
}
}
}