默认情况下,Google Cloud Build 是否在步骤之间保留 docker 个图像?

Does Google Cloud Build keep docker images between steps by default?

默认情况下,Google Cloud Build 会在构建步骤之间保留 docker 个图像吗?

在他们的文档中,他们说构建的图像在每一步后都会被丢弃,但我已经看到构建步骤使用先前构建步骤中生成的图像的示例!那么,构建的图像是在完成每个步骤时丢弃还是保存在某个地方以供后续步骤使用?

这是我的 cloudbuild.yaml

steps: 
- name: gcr.io/cloud-builders/docker
  args:
  - build 
  - '-t' 
  - '${_ARTIFACT_REPO}'
  - . 

- name: gcr.io/cloud-builders/docker
  args: 
  - push 
  - '${_ARTIFACT_REPO}' 

- name: gcr.io/google.com/cloudsdktool/cloud-sdk 
  args: 
  - run 
  - deploy 
  - my-service 
  - '--image' 
  - '${_ARTIFACT_REPO}' 
  - '--region' 
  - us-central1 
  - '--allow-unauthenticated' 
  entrypoint: gcloud

是的,Cloud Build 在步骤之间保留图像。

您可以将 Cloud Build 想象成一个简单的 VM 或您的本地计算机,因此当您构建映像时,它存储在本地(就像您 运行 docker build -t TAG .

所有步骤 运行 在同一个实例中,因此您可以在其他步骤中 re-use 构建前面步骤中的图像。您的示例步骤未显示此内容,但以下内容显示:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args:
  - build
  - -t
  - MY_TAG
  - .

- name: 'gcr.io/cloud-builders/docker'
  args:
  - run
  - MY_TAG
  - COMMAND
  - ARG

也可以使用之前构建的图像作为步骤的一部分:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args:
  - build
  - -t
  - MY_TAG
  - .

- name: 'MY_TAG'
  args:
  - COMMAND
  - ARG

在构建完成(成功或失败)之前,构建的所有图像都可以在您的工作区中使用。

P.D。我问你在哪里读到图像在每一步后都被丢弃的原因是因为我没有在文档中读到它,除非我错过了什么,所以如果你有 link 请与我们分享。