GCP Cloud Build持续失败的原因是什么?如何修复?
GCP Cloud Build 持续失败(SBOM 404错误)的临时解决方案
问题描述
我们的某个GCP项目近期出现Cloud Build持续失败的情况,核心报错为检索SBOM层时返回404 Not Found,完整报错日志如下:
Step #2 - "build": ===> ANALYZING Step #2 - "build": Restoring data for SBOM from previous image Step #2 - "build": ERROR: retrieving launch SBOM layer: GET https://storage.googleapis.com/eu.artifacts.<our-project>.appspot.com/containers/images/sha256:(...)?access_token=REDACTED: unexpected status code 404 Not Found: <?xml version='1.0' encoding='UTF-8'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Details>No such object: eu.artifacts.<our-project>.appspot.com/containers/images/sha256:(...)</Details></Error> Finished Step #2 - "build" ERROR ERROR: build step 2 "eu.gcr.io/gae-runtimes/buildpacks/google-gae-22/python/builder:python_20230306_RC00" failed: step exited with non-zero status: 1
背景信息
- 相同部署内容在其他GCP项目可正常执行,本项目部署设置未做任何变更
- 问题持续多天未自行恢复,导致项目无法部署新版本
- 官方已确认这是低优先级Bug,短期内无法修复
临时解决方案
以下方案可绕过该Bug,恢复正常部署:
- 禁用SBOM缓存恢复:在Cloud Build的构建配置(
cloudbuild.yaml)中添加环境变量,强制构建过程跳过SBOM数据恢复步骤:steps: - name: "eu.gcr.io/gae-runtimes/buildpacks/google-gae-22/python/builder:python_20230306_RC00" env: - "GOOGLE_BUILD_DISABLE_SBOM_RESTORE=true" # 其他原有配置... - 清理旧镜像缓存:删除项目Artifact Registry中与失败构建相关的旧镜像及分层(注意保留生产环境所需镜像),或使用命令行清理:
gcloud artifacts docker images delete eu.gcr.io/<your-project-id>/<target-image> --delete-tags --quiet - 强制无缓存构建:触发部署时添加
--no-cache参数,让构建过程完全从头开始:gcloud app deploy --no-cache
内容的提问来源于stack exchange,提问作者patb
相关产品推荐
相关产品推荐

