簡體   English   中英

Docker“登錄成功”但仍無法推送到GCP私有注冊表

[英]Docker “Login succeeded” but still cannot push to GCP private registry

當我將docker鏡像推送到我的私有GCP注冊表時,我遇到了問題。 我使用Google Cloud Platform的所有者角色創建了一個新的服務帳戶。 然后我創建了一個服務密鑰,並將Gson文件(我從服務帳戶下載)的內容復制到Gitlab CI / CD變量中的$ GCP_SERVICE_KEY變量中。

這是我的.gitlab-ci.yaml文件:

image: python:3.6

stages:
  - push

before_script:
  - mkdir -p $HOME/.docker
  - echo "$GCP_SERVICE_KEY" >> "$HOME/.docker/config.json"

dockerpush:
  stage: push
  image: docker:stable
  services:
    - docker:dind
  script:
    - docker build --build-arg MONGODB_URI=$MONGODB_URI -t my_image_name .
    - docker login -u _json_key --password-stdin https://gcr.io < $HOME/.docker/config.json
    - docker tag my_image_name eu.gcr.io/my_project_id/my_image_name
    - docker push eu.gcr.io/my_project_id/my_image_name

當我檢查控制台日志時,我看到“登錄成功”。 但我無法推送到我的GCP注冊表。 我檢查了項目ID,我的用戶的角色,一切似乎都沒問題。 但為什么我仍然看到“未經授權”的錯誤?

$ docker login -u _json_key -p "$GCP_SERVICE_KEY" https://gcr.io
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

$ docker tag my_image_name eu.gcr.io/my_project_id/my_image_name   
$ docker push eu.gcr.io/my_project_id/my_image_name   
The push refers to repository   
Preparing   
Preparing   
unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials.  
To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

您正在登錄https://gcr.io ,但請訪問https://eu.gcr.io

docker login命令更新為https://eu.gcr.io

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM