【发布时间】:2019-11-12 17:51:34
【问题描述】:
目前我使用 Jenkins、Docker 和 Kubernetes 实现了一个测试 CI/CD 管道。我正在使用 Kubernetes Helm Chart 添加我的 Kubernetes 资源并使用 Dockerhub 作为图像存储库。当我检查我部署的 api 的输出时,它没有通过修改后的更改进行更新。
当我检查 Jenkins 的控制台输出时,它显示一切成功。但是最新的 Docker 镜像并没有使用标签“latest”来拉取。我仍然得到较旧的输出。
在我的 Helm Chart values.yaml 中,我添加了如下内容:
imageCredentials:
name: helmchartrepository
registry: <my-registry-name>
username: <my-username>
password: <my-password>
image:
repository: <my-repository>
tag: latest
pullPolicy: Always
我的 deployment.yaml 引用这些值如下:
注意:即使我使用“latest”从存储库中提取最新图像的配置,我仍然没有得到修改后的图像。而且也没有错误。唯一的问题是从 Dockerhub 镜像存储库中提取最新的 docker 镜像。
我该如何解决这个错误?
【问题讨论】:
-
简短回答:让 Jenkins 为每个构建分配一些唯一标签(它知道当前提交 ID 和当前时间),然后在您部署时
helm upgrade --install --set image.tag=...。不要使用latest标签。
标签: docker kubernetes