У меня есть этот Jenkinsfile:
#!groovy
pipeline
{
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
}
agent {
label 'docker && new'
}
stages
{
stage('Docker build')
{
when {
branch 'dev'
}
steps
{
sh "echo ${env.BUILD_NUMBER}"
sh "./scripts/push.sh Docker http://xxxxx.xxxx ${env.BUILD_NUMBER} ${env.GIT_BRANCH}"
sh "echo ${env.BUILD_NUMBER}"
sh "echo ${env.GIT_BRANCH}"
}
}
stage("Initialise")
{
agent {
dockerfile {
filename 'Dockerfile'
label 'docker && new'
args '--entrypoint ""'
}
}
steps {
sh "terraform init -input=false"
}
}
stage("WorkspaceDev") {
agent {
dockerfile {
filename 'Dockerfile'
label 'docker && new'
args '--entrypoint ""'
}
}
when {
branch 'dev'
}
steps {
sh "terraform workspace select dev || terraform workspace new dev"
}
}
}
}
Он создает контейнер из моего Dockerfile, однако при запуске этого задания он создает новый docker контейнер для запуска следующего этапа под названием WorkspaceDev. Мне нужно использовать отдельный агент для самого первого этапа, а затем агент dockerfile для всех остальных этапов
Как использовать тот же контейнер, созданный для этапа инициализации?
Проблема:
При запуске этого конвейера этап "Docker build" выполняется на самом агенте, как и ожидалось. Затем он доходит до стадии «инициализации». Это сборка нового контейнера docker (сборка docker (мой Dockerfile, который я указал в разделе агента для этого этапа). Этот этап завершается внутри этого контейнера. Затем он переходит к этапу "WorkspaceDev" - тогда ОПЯТЬ перестраивает контейнер с docker build.
Я хочу использовать тот же контейнер, созданный на этапе «Инициализация»