https://cloud.google.com/build/docs/building/build-containers 使用第一个代码块,但我想知道他们为什么不使用第二个。据我所知,他们达到了相同的结果。有什么实际区别吗?
# config 1
steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/project-id/project-name','.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/project-id/project-name']
# Deploy container image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'deploy', 'project-name', '--image', 'gcr.io/project-id/project-name', '--region', 'us-central1']
images: ['gcr.io/project-id/project-name']
# config 2
steps:
# Build the container image
- name: 'gcr.io/cloud-builders/gcloud'
args: ['builds', 'submit', '--region', 'us-central1', '--tag', 'gcr.io/project-id/project-name','.']
# Deploy container image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'deploy', 'project-name', '--image', 'gcr.io/project-id/project-name', '--region', 'us-central1']
我用 gcloud builds submit --config cloudbuild.yaml
运行它
回答1
在第二个配置中,您从 Cloud Build 内部调用 Cloud Build,这意味着您在第二个配置中支付两倍的 docker build/push 过程。
事实上时间线的那个时间
- 云构建 1
- 云构建 2
- Docker 构建
- Docker 推送
- 部署在云端运行
此外,并发构建的数量是有限的,使用 config 2,您可以使用 2 倍的配额。
结果是一样的(配置 1 应该会稍微快一些,因为你没有新的 Cloud Build 可以启动)