如何使用 Cloudbuild 使用配置文件在 Container Registry 中存储具有不同标签的 docker 图像?
How to store docker images in Container Registry with different tags with a config file using Cloudbuild?
我想在 Google Container Registry 中存储带有两个不同标签 $BRANCH_NAME-$REVISION_ID
和 latest
的图像
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID']
images: ['gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID']
我可以用一个标签保存它,但是当我尝试添加第二个标签时它失败了。我收到以下错误
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/docker
Step #2: The push refers to repository [gcr.io/myproject/myapp]
Step #2: tag does not exist: gcr.io/myproject/myapp:latest
我想这样做以确保我的 k8s 部署文件指向最新的图像。
更新
我做到了
substitutions:
_IMG_NAME: "myapp"
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/${_IMG_NAME}:$BRANCH_NAME-$REVISION_ID', '-t' , 'gcr.io/$PROJECT_ID/${_IMG_NAME}:latest', '.']
images: ['gcr.io/$PROJECT_ID/${_IMG_NAME}']
我认为在创建 docker 图像时可以 use/set 几个标签。
例如,可以使用类似的东西:
- name: 'gcr.io/cloud-builders/docker'
env:
- 'DOCKER_BUILDKIT=1'
args:
- build
- --tag
- gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID'
- --tag
- gcr.io/$PROJECT_ID/myapp:latest
- .
我也猜想 docker push
或 image
之一应该就足够了。
我想在 Google Container Registry 中存储带有两个不同标签 $BRANCH_NAME-$REVISION_ID
和 latest
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID']
images: ['gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID']
我可以用一个标签保存它,但是当我尝试添加第二个标签时它失败了。我收到以下错误
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/docker
Step #2: The push refers to repository [gcr.io/myproject/myapp]
Step #2: tag does not exist: gcr.io/myproject/myapp:latest
我想这样做以确保我的 k8s 部署文件指向最新的图像。
更新
我做到了
substitutions:
_IMG_NAME: "myapp"
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/${_IMG_NAME}:$BRANCH_NAME-$REVISION_ID', '-t' , 'gcr.io/$PROJECT_ID/${_IMG_NAME}:latest', '.']
images: ['gcr.io/$PROJECT_ID/${_IMG_NAME}']
我认为在创建 docker 图像时可以 use/set 几个标签。 例如,可以使用类似的东西:
- name: 'gcr.io/cloud-builders/docker'
env:
- 'DOCKER_BUILDKIT=1'
args:
- build
- --tag
- gcr.io/$PROJECT_ID/myapp:$BRANCH_NAME-$REVISION_ID'
- --tag
- gcr.io/$PROJECT_ID/myapp:latest
- .
我也猜想 docker push
或 image
之一应该就足够了。