我从 Jenkins 创建了一个流程,该流程构建一个 dockerfile,然后通过 helm 为我创建一个图表。问题是我推送到 dockerhub 的镜像名称,然后存储库根据 Jenkins 版本号进行更改。
deployment.yaml
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
values.yaml
:
image:
repository: photop/micro_focus
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "%image_tag%"
Jenkinsfile
:
stage ('Deploy&Operate HM'){
steps{
script{
bat 'minikube start'
bat 'kubectl create deployment %BUILD_NUMBER% --image="%BUILD_NUMBER%":latest'
bat 'helm install test-%BUILD_NUMBER% ./micro --set image_tag=%BUILD_NUMBER%'
输出:
Failed to apply default image tag "photop/micro_focus:%image_tag%": couldn't parse image reference "photop/micro_focus:%image_tag%": invalid reference format
如何更改 Jenkins 构建的变量而不是 %image_tag% :
photop/micro_focus:%image_tag%
您只需创建自动应用于集群的部署,因为您没有指定 --dry-run=client 参数。因此我不明白你为什么要使用 helm install,这样感觉很模糊。但我可能是错的,不明白这种方式的做法。