Google Cloud Build默认是否在构建步骤之间保留Docker镜像的技术咨询
关于Cloud Build步骤间镜像留存的解答
首先直接给你明确结论:你构建并打了标签的Docker镜像不会在步骤完成后立即丢弃,官方文档提到的“丢弃”指的是步骤运行时的临时容器,而非你生成的镜像本身。
具体拆解下你的疑问:
- 步骤间的镜像复用逻辑:当你在第一个步骤用
docker build -t ${_ARTIFACT_REPO} .构建镜像并打上标签后,这个镜像会被保存在Cloud Build环境的本地容器镜像仓库中。后续的步骤(比如你第二个步骤的docker push、第三个步骤的部署)都可以直接引用这个标签来操作——这也是你看到示例中后续步骤能复用之前镜像的原因。 - 官方文档“丢弃”的真实含义:官方说的“每个步骤完成后丢弃”,指的是每个步骤运行时的临时执行容器。Cloud Build的每个步骤都是在独立的容器里运行的,步骤执行完毕后,这个运行中的容器会被清理回收,但你构建出来并打了标签的镜像会被保留下来,供后续步骤使用。
- 结合你的配置验证:你的
cloudbuild.yaml完全是合理的流程:- 第一步构建镜像并打标签
${_ARTIFACT_REPO} - 第二步直接推送这个标签的镜像到仓库
- 第三步用gcloud部署这个已推送的镜像
整个流程中,第一步的镜像在第二步是可用的,完全符合预期。
- 第一步构建镜像并打标签
额外小提示:如果构建镜像时没有打标签,那这个无标签镜像可能会在步骤结束后被自动清理,所以一定要给你需要复用的镜像打上明确的标签,确保后续步骤能找到它。
内容的提问来源于stack exchange,提问作者Rabi
相关产品推荐
相关产品推荐

