簡體   English   中英

無法將docker鏡像推送到GCP注冊表:拒絕:項目的令牌交換失敗 <my_project_id> 拒絕訪問

[英]Unable to push docker image to GCP registry : denied: Token exchange failed for project <my_project_id> Access denied

在嘗試使用Google Cloud cli在Google Cloud Registry上推送泊塢窗圖片時,我收到錯誤消息:

否認:令牌交換失敗的項目。 拒絕訪問。

我按照以下步驟操作:

  1. 已安裝Google雲端sdk shell
  2. 下載了我的IM帳戶的密鑰json文件
  3. 使用以下命令設置驗證:

google-cloud-sdk/bin/gcloud auth activate-service-account --key-file <path_to_json_file>

  1. 執行以下命令登錄:

docker login -u _json_key --password-stdin https://asia.gcr.io < path_to_json_file

  1. 構建並標記了泊塢窗圖像。

  2. 嘗試使用以下命令將圖像推送到GCR:

docker push "asia.gcr.io/$GCLOUD_PROJECT_ID/$IMAGE_NAME:latest"

我得到的結果如下:

The push refers to repository [asia.gcr.io/<my_project_id>/<my_image_name>]
1bd77e11e1bf: Preparing
b57c79f4a9f3: Preparing
d60e01b37e74: Preparing
e45cfbc98a50: Preparing
762d8e1a6054: Preparing

denied: Token exchange failed for project <my_project_id>. Access denied.

注意:1。我的GCR API已啟用。

  1. 我正在使用的Docker版本是“Docker版本18.09.2,版本6247962”

  2. 我正在使用安裝了Google雲CLI的Windows機器。 因此,所有操作僅從Widows執行。

  3. 我在我的Gitlab管道中嘗試過Gitlab圖像'Docker:latest'。 兩個地方的錯誤都是一樣的(我的本地Windows機器和Gitlab管道)

您不需要步驟#3,因為您正在驗證Docker(而不是gcloud)以使用服務帳戶的憑據。

它適用於Linux(Cloud Shell)實例; 我假設GitLab使用Linux。 我沒試過Windows機器。

我建議您檢查您是否指的是正確的服務帳戶,密鑰,項目等。如評論中所述,服務帳戶需要> = roles/storage.admin

暫無
暫無

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

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