Jenkins не хочет использовать какие-либо переменные в разделе аргументов докера агента, кроме основных переменных Jenkins, таких как JENKINS_URL.
Контейнерный Jenkins 2.152.Попытка запустить агент Docker с пользовательскими аргументами из переменных.Пробовал использовать Groove var, окружение var как env.Var, окружение var как $ {Var}.Все они использовались как имена, но не как их значения.
Jenkinsfile
Gpath = "/var/log:/opt/gpath"
pipeline {
agent {
docker {
image "bash:latest"
args '--network proxy_nw -v Gpath -v ${Ppath} -v env.Ppath2 -v /var/log:/${NODE_LABELS}'
}
}
environment {
Ppath = "/var/log:/opt/ppath"
Ppath2 = "/var/log:/opt/ppath2"
}
stages {
stage ('main') {
steps {
script {
sh 'echo "Ppath= " ${Ppath} "; Ppath2= " ${Ppath2} "; NODE_LABELS= " ${NODE_LABELS}'
sh 'printenv'
input message: "wait"
}
}
}
}
}
Вывод на консоль Jenkins
docker run -t -d -u 1000:1000 --network proxy_nw -v Gpath -v ${Ppath} -v env.Ppath2 -v /var/log:/${NODE_LABELS}
Как видите, я использовал несколько переменных внутри секции args.Хорошо, из-за одинарных кавычек кажется разумным, что Groovy-переменные идут как имена.Мы можем видеть это на выходе консоли Jenkins.Но переменные окружения тоже не работают.Они актуальны внутри строительного контейнера, а не на уровне Дженкинса.Так.Как определить переменные для раздела args директивы агента docker?