当前,我正在尝试添加版本号或内部版本号,以将Docker映像部署在Kubernetes集群上。以前,我只使用:latest
标签。但是,当我使用latest
标签时,我发现从Dockerhub映像注册表中提取问题。因此,当我在<image-name>:{build-number}
之类的docker映像中使用内部版本号时。
应用程序结构
在Kubernetes部署中,我正在使用部署和服务。我正在像下面这样在部署文件中定义映像存储库,
containers:
- name: test-kube-deployment-container
image: samplekubernetes020/testimage:latest
ports:
- name: http
containerPort: 8085
protocol: TCP
在这里,而不是最新的标签,我想将内部版本号与映像放在部署YAML中。
- 我可以使用环境变量来保存用于访问的随机内部版本号,例如
<image-name>:${buildnumber}
吗? - 如果我想使用提供随机数的环境变量,如何为环境变量生成随机数?
映像版本实施更新
我修改过的Jenkinsfile包含如下步骤,将图像版本号分配给图像。但是在更改存储库后,我仍然没有得到更新的结果,
我在Jenkinsfile中创建了以下步骤
stage ('imagebuild')
{
steps
{
sh 'docker build -f /var/lib/jenkins/workspace/jpipeline/pipeline/Dockerfile -t spacestudymilletech010/spacestudykubernetes /var/lib/jenkins/workspace/jpipeline/pipeline'
sh 'docker login --username=my-username --password=my-password'
sh "docker tag spacestudymilletech010/spacestudykubernetes:latest spacestudymilletech010/spacestudykubernetes:${VERSION}"
sh 'docker push spacestudymilletech010/spacestudykubernetes:latest'
}
}
我的部署YAML文件包含如下内容,
containers:
- name: test-kube-deployment-container
image: spacestudymilletech010/spacestudykubernetes:latest
ports:
- name: http
containerPort: 8085
protocol: TCP
困惑
注意::当我检查dockerhub存储库时,每次显示最新推送状态
所以我的困惑是:
- 在我的deploy.yaml文件中提取最新映像是否有问题?
- 在我从机器上构建图像并推送图像的机器上标记图像时出现问题吗?