Docker 当图像的标记名不断更改时,从gcr中提取图像

Docker 当图像的标记名不断更改时,从gcr中提取图像,docker,jenkins,kubernetes,containers,jenkins-pipeline,Docker,Jenkins,Kubernetes,Containers,Jenkins Pipeline,我已经在kubernetes集群上制作了一个jenkins管道 问题在于管道运行后,会创建一个带有新标记的图像。因此,我无法在部署yaml文件中硬编码标记名 如何使用正确的标签提取图像 我认为正确的工作方式是始终推送带有标记的图像,另外推送一个标记的最新图像(这将覆盖以前的最新图像) 通过这种方式,在kubernetes yaml中,您可以随时获取最新信息 根据您给定的语句和一些假设,您可以尝试重新编写Jenkins管道以添加一个标记:latest stage('Push image') {

我已经在kubernetes集群上制作了一个jenkins管道

问题在于管道运行后,会创建一个带有新标记的图像。因此,我无法在部署yaml文件中硬编码标记名


如何使用正确的标签提取图像

我认为正确的工作方式是始终推送带有标记的图像,另外推送一个标记的最新图像(这将覆盖以前的最新图像)


通过这种方式,在kubernetes yaml中,您可以随时获取最新信息

根据您给定的语句和一些假设,您可以尝试重新编写Jenkins管道以添加一个标记:latest

 stage('Push image') {

    docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') {
        app.push("${env.BUILD_NUMBER}")
        app.push("latest")
    }

因此,我认为你的yaml现在将总是拉最新的图像。我希望这能解决您当前的问题。

为什么不读取管道中的文件名并将其传递给您yaml文件,或者修改yaml文件以在守护程序I中接受此文件名呢?它有点不同。它缓存并且不下载相同的标签图像,即使它具有alway pull功能。在K8s 1.9.5上测试。您需要在容器数据中而不是在规范数据中指定ImagePullPolicy