客观
这里的目标是将脚本化的詹金斯管道迁移到声明式。脚本化管道在kubernetes管理的docker slave上运行,工作语法如下所示
slave = 'dtr@tes.com/namespace/image:1.0'
dockerNode(image:slave)
{
stage('1'){echo "1"}
stage('2'){echo "2"}
}
脚本化管道运行正常。
关注点
尝试使用dockerNode进行描述性管道,但在声明性中,仅在阶段内执行步骤后才允许使用dockerNode语法
例如:
pipeline{
agent any
stages{
stage('1and2'}{
dockerNode(image:slave){
echo "1"
echo "2"
}
}
}
}
这使得关注一个阶段而不是多个阶段的大型步骤成为可能。因此,希望您的帮助了解如何更好地对齐并让多个阶段始终在同一容器中运行。容器图像是由kubernetes管理(带有docker镜像的kube pod)