我正在尝试使用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 hood和docker image names use :
to specify versions起,此格式可能无效。
有什么想法在处理组织项目时应该做什么?我无法在Cloud Build或GCP IAM文档中找到相关信息。
我尝试过的一些事情:
cloudbuild.yaml
config file和$PROJECT_ID
substitution来确保我的格式正确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
角色,前者指定我可以“创建和取消构建” 答案 0 :(得分:2)
您需要将“:”替换为“ /”
LinkedMultiValueMap<String, String> requestParams = new LinkedMultiValueMap<>()
requestParams.add("id", "1");
requestParams.add("name", "john");
requestParams.add("age", "30");
mockMvc.perform(get("my/endpoint").params(requestParams)).andExpect(status().isOk())
更多信息可以在这里找到:https://cloud.google.com/container-registry/docs/overview#domain-scoped_projects
答案 1 :(得分:0)
您可以通过运行以下命令来实现:
gcloud beta run deploy --image gcr.io/replica-20584682/helloworld --platform managed
现在默认情况下,所有项目都在组织下,并且项目ID在全局范围内是here唯一的。
由于它在部署时在全球范围内是唯一的,因此您无需提及组织。
编辑
添加了标志--platform managed