我推着我的形象集装箱注册时我有权限问题。我收到的错误是
denied: Token exchange failed for project '<my project>'. Caller does not have permission 'storage.buckets.create'. To configure permissions, follow instructions at: https://cloud.google.com/container-registry/docs/access-control
我已按照说明逐步进行操作,这是我所做的:
gcloud auth configure-docker
我搬运工config.json现在包含:
{
"auths": {},
"credHelpers": {
"gcr.io": "gcloud",
"us.gcr.io": "gcloud",
"eu.gcr.io": "gcloud",
"asia.gcr.io": "gcloud",
"staging-k8s.gcr.io": "gcloud",
"marketplace.gcr.io": "gcloud"
},
"credsStore": "wincred",
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.0 (windows)"
},
"stackOrchestrator": "swarm"
}
标记了我的图片docker tag my/image eu.gcr.io/<my project>/my-image:latest
运行docker push eu.gcr.io/<my project>/my-image:latest
(随后出现错误)
这是我的设置
我已检查我的活动帐户是否正确(gcloud auth login
指向正确的登录电子邮件),并且该帐户具有所有者权限。我还尝试过专门向该帐户添加“存储管理员”权限,但无济于事。
请帮助我提高形象!
答案 0 :(得分:0)
尝试将项目标志--project=<<PROJECT-ID>>
传递给命令。如果您要管理多个项目,gcloud
可能会缓存错误的权限。
答案 1 :(得分:0)
潜在的原因是活动的gcloud PROJECT_ID
与您要推送到的注册表不匹配。
gcloud config set project <PROJECT_ID>
gcloud builds submit --tag gcr.io/<PROJECT_ID>/foo
如果项目实际上不同,请确保PROJECT_ID匹配或在IAM中提供访问权限。