You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Cloud Run预览构建因缺失latest标签失败该如何解决

问题根因

你在link revision on pull request步骤的name字段中指定自定义构建器镜像时,没有显式声明镜像标签,Docker默认会自动补全:latest标签尝试拉取,因此出现了找不到latest标签的报错。

解决方案

场景1:deployment-previews自定义构建器需要跟随当前PR代码迭代

如果这个构建器的逻辑和业务代码放在同一个仓库,每次PR修改都需要同步更新构建器,你需要新增两步构建推送构建器的配置,并修改最后一步的镜像引用:

  1. 在现有构建步骤前新增自定义构建器的构建、推送步骤:
steps:
  # 新增的构建器构建步骤,放在现有步骤最前面
  - id: "build custom preview builder"
    name: "gcr.io/cloud-builders/docker"
    args:
      [
        "build",
        "-t",
        "$_GCR_HOSTNAME/${PROJECT_ID}/deployment-previews:${_PR_NUMBER}-${SHORT_SHA}",
        # 替换为你存放deployment-previews构建器Dockerfile的上下文路径
        "./builder",
      ]
  - id: "push custom preview builder"
    name: "gcr.io/cloud-builders/docker"
    args:
      [
        "push",
        "$_GCR_HOSTNAME/${PROJECT_ID}/deployment-previews:${_PR_NUMBER}-${SHORT_SHA}",
      ]
  # 你原来的build image、push image等步骤放在后面
  ...
  1. 修改最后一步的name字段,显式指定镜像标签:
- id: "link revision on pull request"
  name: "$_GCR_HOSTNAME/${PROJECT_ID}/deployment-previews:${_PR_NUMBER}-${SHORT_SHA}"
  args:
    [
      "set",
      "--project-id",
      "${PROJECT_ID}",
      "--region",
      "${_REGION}",
      "--service",
      "${_SERVICE_NAME}",
      "--pull-request",
      "${_PR_NUMBER}",
      "--repo-name",
      "${_GITHUB_REPO}",
      "--commit-sha",
      "${SHORT_SHA}",
    ]

场景2:deployment-previews是固定的公共工具镜像

如果这个构建器的逻辑不需要跟随业务代码变动,你可以直接给构建器镜像打一个固定的版本标签(例如v1)推送到镜像仓库,然后在最后一步直接引用固定标签即可:

- id: "link revision on pull request"
  name: "$_GCR_HOSTNAME/${PROJECT_ID}/deployment-previews:v1"
  args: [...]

这种方案无需每次PR都重新构建构建器,构建效率更高。

自定义构建器定义查找路径

自定义构建器本质就是普通的Docker镜像,它的定义就是构建该镜像对应的Dockerfile,你可以在团队代码仓库中搜索deployment-previews关键词,或者咨询之前负责配置预览构建流程的同事获取对应的Dockerfile和构建逻辑。


内容的提问来源于stack exchange,提问作者Jan.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:09:03