使用最新上游图像的docker内部Jenkins管道
我们有一个Jenkins文件,其中包含一个声明性管道,使用Docker容器在构建节点上运行使用最新上游图像的docker内部Jenkins管道,docker,jenkins,Docker,Jenkins,我们有一个Jenkins文件,其中包含一个声明性管道,使用Docker容器在构建节点上运行 pipeline { agent { docker { registryCredentialsId 'foobar-registry' registryUrl 'https://foobar.com/' image 'bar:latest'
pipeline {
agent {
docker {
registryCredentialsId 'foobar-registry'
registryUrl 'https://foobar.com/'
image 'bar:latest'
label 'foobar && docker'
reuseNode false
args ''
}
}
stages {
stage('Steps run inside docker here ...') {
steps {
sh "python3 -m pycodestyle ."
}
}
}
}
这是可行的,但构建节点docker实例正在缓存栏:latest
图像,并且在存在更新时不会从上游注册表中提取最新的图像。如果我们更新存储库中的Docker映像,我们必须手动关闭构建节点Docker缓存,这是一个难题
我们可以手动将版本添加到Jenkins文件中引用的映像构建中,并在每次修改Docker映像时更新版本,但对于我们的开发分支,我们非常希望此管道仅在存储库中提取最新映像(如果未检测到任何更改,则最好使用缓存)
这不是一个不寻常的需求,但很难找到docker插件的文档(特别是声明性作业),因此任何帮助都值得感谢。在翻找源代码后,修复程序是:
pipeline {
agent {
docker {
...
alwaysPull true
...
}
}
}
这将使用本地docker缓存,并且仅在事情发生更改时才提取新图像