在云构建配置文件中一起使用“docker build”和“docker push”与“cloud build submit”之间有什么实际区别?

Any practical difference between using `docker build` & `docker push` together vs. `cloud build submit` in cloud build config files?

Google Cloud docs 使用第一个代码块,但我想知道为什么他们不使用第二个代码块。据我所知,他们取得了相同的结果。有什么实际区别吗?

# 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

在第二个配置中,您从 Cloud Build 内部调用 Cloud Build,这意味着您在第二个配置中支付两倍的 docker build/push 过程。

时间线的那个时间

  • 云构建 1
    • 云构建 2
    • Docker 构建
    • Docker 推送
  • 在云端部署运行

此外,并发构建的数量是有限的,配置 2 使用的配额是原来的 2 倍。

结果是一样的(配置 1 应该稍微快一些,因为您没有新的 Cloud Build 可以启动)