这是一个非常简单的要求。 我在Mac上准备了一个docker映像,并希望将其推送到GCR。 尝试了以下步骤。
gcloud auth configure-docker
docker login gcr.io
docker push gcr.io/[project-id]/gcloud:latest
The push refers to repository [gcr.io/[project-id]/gcloud]
0141ab2d5898: Retrying in 1 second
522a3d37badb: Retrying in 1 second
0b1ee8a19f71: Retrying in 1 second
0cb89ac95352: Retrying in 1 second
c27a33c2a613: Retrying in 2 seconds
1416f891501a: Waiting
2edebac67fd2: Waiting
cff7468ca6ac: Waiting
7d105a69bdfc: Waiting
8607e6c66303: Waiting
dc87e12495f4: Waiting
c3c5e6948ef3: Waiting
5f70bf18a086: Waiting
b2f56e492d5b: Waiting
861512eb6ef5: Waiting
876201329b4b: Waiting
unknown: Token exchange failed for project '[project-id]'. Bad Request.
有人可以在这个问题上提出建议吗?
答案 0 :(得分:0)
您尝试使用gcloud auth activate-service-account [SERVICE_ACCOUNT]
代替docker login gcr.io
我认为这是比docker login
更好的方法。
答案 1 :(得分:0)
答案 2 :(得分:0)
我在添加的前提条件中遇到了同样的问题,即注册表中还没有现有的映像。
如果尚无图像,则GCR存储后端(一个GCS存储桶)也将不存在。
确保该存储桶可由登录gcloud
的用户创建。就我而言,有一个组织政策禁止多区域存储桶,这是GCR所需的存储桶类型。
您可以通过进入项目活动来检查这是否是问题的根本原因,在那里您将看到创建存储桶的失败。