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

标签 docker google-cloud-platform cloud google-cloud-build google-iam

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

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

我无法完成构建。

当我运行时:

gcloud builds submit --tag gcr.io/mycompany.com:project-id/helloworld

我收到以下错误:
(gcloud.builds.submit) INVALID_ARGUMENT: invalid build: invalid image name "gcr.io/mycompany.com:projectX/helloworld" 

我怀疑是因为 --tag flag calls docker build -t $TAG . under the hooddocker image names use : to specify versions ,此格式可能无效。

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

我尝试过的一些事情:
  • 使用 cloudbuild.yaml config file$PROJECT_ID substitution确保我有正确的格式
  • 使用项目编号而不是项目 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角色,前者指定我可以“创建和取消构建”
  • 最佳答案

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

    gcloud builds submit --tag gcr.io/mycompany.com/project-id/helloworld
    

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

    关于docker - 使用域范围项目时,云构建中的图像名称无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58045088/

    相关文章:

    google-app-engine - 是否可以私下托管 GAME 兼容网格?

    macos - 在 Mac OS X 上使用 dockerfile ADD 和 COPY 命令

    docker - 修改Docker镜像

    java - 如何从 Cloud Run Java 应用程序连接到 Cloud SQL 数据库?

    google-bigquery - 如何将 Google Cloud SQL 与 Google Big Query 集成

    cloud - 虚拟化与私有(private)云计算之间的差异

    docker - 来自守护程序的错误响应: list 错误

    docker - 访问docker容器中的非IP接口(interface)

    kubernetes - 将Compute Engine磁​​盘作为持久卷添加到Container Engine

    java - 同一程序在两个不同的 JVM 中