使用域范围项目时,云构建中的图像名称无效

Dav*_*les 6 cloud docker google-cloud-platform google-iam google-cloud-build

我正在尝试使用 GCP 的 Cloud Build 构建一个容器。我正在使用quickstart doc 中的简单模板。我以前成功地做到了这一点。

但是,这次我使用的是“组织”下的项目。所以项目 ID 是mycompany.com:projectX,而不是简单的projectX.

我无法完成构建。

当我运行时:

gcloud builds submit --tag gcr.io/mycompany.com:project-id/helloworld
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

(gcloud.builds.submit) INVALID_ARGUMENT: invalid build: invalid image name "gcr.io/mycompany.com:projectX/helloworld" 
Run Code Online (Sandbox Code Playgroud)

我怀疑由于--tag标志docker build -t $TAG .在引擎盖下调用并且docker 图像名称用于:指定版本,因此这种格式可能无效。

在处理组织项目时我应该做什么有什么想法吗?我在 Cloud Build 或 GCP IAM 文档中找不到相关信息。

我尝试过的一些事情:

  • 使用带有替换cloudbuild.yaml配置文件以确保我具有正确的格式$PROJECT_ID
  • 使用项目编号而不是项目 ID ( Using the project number in the image path is not supported. Project ID must be used instead)
  • 完全省略组织名称,这被拒绝 Token exchange failed for project
  • 检查我的权限 - 我有Cloud Build EditorCloud Run Invoker角色,前者指定我可以“创建和取消构建”

Jam*_*mes 6

您需要将“:”替换为“/”

gcloud builds submit --tag gcr.io/mycompany.com/project-id/helloworld
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里找到:https : //cloud.google.com/container-registry/docs/overview#domain-scoped_projects