我正在尝试用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_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 Editor
和Cloud Run Invoker
角色,前者指定我可以“创建和取消构建”
3条答案
按热度按时间rdlzhqv91#
您需要将“:“替换为“/”
更多信息可在此处找到:https://cloud.google.com/container-registry/docs/overview#domain-scoped_projects
y1aodyip2#
您可以通过运行以下命令来执行此操作:
现在所有的项目都默认在一个组织下,项目ID是全局唯一的here它解释了这一点。
由于它在全球范围内是唯一的,因此在部署时无需提及组织。
EDIT添加了标志
--platform managed
lstz6jyr3#
对于那些想知道如何解决这个错误的人来说:
您的生成运行失败:泛型::无效参数:无效内部版本:无效映像名称..等
这个错误accured后,我部署我的应用程序到云运行通过github .只需执行以下步骤:
1.转到云构建中的触发器
1.向下导航到配置,然后单击打开编辑器
1.用错误日志中的路径自动替换路径集,但请使用小写字母,并且不允许超过100个字符