docker push to Google Container Registry错误“呼叫者没有权限'storage.buckets.create'”

时间:2019-02-02 19:38:08

标签: docker gcloud google-container-registry

我推着我的形象集装箱注册时我有权限问题。我收到的错误是

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

我已按照说明逐步进行操作,这是我所做的:

  1. 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"
}
  1. 标记了我的图片docker tag my/image eu.gcr.io/<my project>/my-image:latest

  2. 运行docker push eu.gcr.io/<my project>/my-image:latest(随后出现错误)

这是我的设置

  • 视窗10(10.0.17134生成17134)
  • Docker版本18.09.0,构建4d60db4
  • 谷歌云SDK 232.0.0,BQ 2.0.40,芯2019年1月27日,的gsutil 4.35

我已检查我的活动帐户是否正确(gcloud auth login指向正确的登录电子邮件),并且该帐户具有所有者权限。我还尝试过专门向该帐户添加“存储管理员”权限,但无济于事。

请帮助我提高形象!

2 个答案:

答案 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中提供访问权限。

相关问题