docker 使用领域范围的项目时,云端建置中的影像名称无效

jqjz2hbq  于 2022-11-22  发布在  Docker
关注(0)|答案(3)|浏览(96)

我正在尝试用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标志在幕后调用docker build -t $TAG .docker image names use : to specify versions,因此此格式可能无效。
有什么想法,我应该做什么时,与组织项目的工作?我找不到相关的信息,在云构建或GCP IAM文档。
我试过一些方法:

  • 使用cloudbuild.yaml config file$PROJECT_IDsubstitution来确保我具有正确的格式
  • 使用项目编号而不是项目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角色,前者指定我可以“创建和取消构建”
rdlzhqv9

rdlzhqv91#

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

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

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

y1aodyip

y1aodyip2#

您可以通过运行以下命令来执行此操作:

gcloud beta run deploy --image gcr.io/replica-20584682/helloworld --platform managed

现在所有的项目都默认在一个组织下,项目ID是全局唯一的here它解释了这一点。
由于它在全球范围内是唯一的,因此在部署时无需提及组织。

EDIT添加了标志--platform managed

lstz6jyr

lstz6jyr3#

对于那些想知道如何解决这个错误的人来说:
您的生成运行失败:泛型::无效参数:无效内部版本:无效映像名称..等
这个错误accured后,我部署我的应用程序到云运行通过github .只需执行以下步骤:
1.转到云构建中的触发器
1.向下导航到配置,然后单击打开编辑器
1.用错误日志中的路径自动替换路径集,但请使用小写字母,并且不允许超过100个字符

相关问题