簡體   English   中英

無法將 Docker 圖像從 Github 操作推送到 GCP

[英]Cannot push Docker images to GCP from Github Action

我有以下 Github 操作腳本,我在這里使用的 JSON 密鑰文件對 GCP 項目具有所有者權限。 我無法將圖像推送到 GCP 工件 docker 存儲庫。

steps:
    - name: Checkout
      uses: actions/checkout@v2
  
    - name: Authenticate to Google Cloud
      uses: google-github-actions/auth@v0.4.3
      with:
        project_id: something-dev-tooling
        credentials_json: '${{ secrets.GCP_JSON }}'
        
    - name: Configure GCloud Auth provider with Docker
      run: |
            gcloud auth configure-docker australia-southeast1-docker.pkg.dev

    - name: Build Tag & Push Container
      run: | 
              tagname="${{github.ref_name}}"
              docker build -t test-signup-api --target prod .
              docker tag test-signup-api australia-southeast1-docker.pkg.dev/something-docker/test-signup-api:$tagname
              docker push australia-southeast1-docker.pkg.dev/something-docker/test-signup-api:$tagname      

這會產生以下錯誤:

成功標記 test-signup-api:latest 推送指的是存儲庫 [australia-southeast1-docker.pkg.dev/something-docker/test-signup-api] 123f04c654be: Preparing 1d4281763c85: Preparing 4251fe09055f: Preparing a057xxef5483: Preparing c6323d11ce20: Preparing b4c1ae489097: Preparing 07d2d7aa362e: Preparing 7c1610cf2397: Preparing 16427a3bb904: Preparing 449a28044116: Preparing f11bbd657c82: Preparing b4c1ae489097: Waiting 07d2d7aa362e: Waiting 7c1610cf2397: Waiting 16427a3bb904: Waiting 449a28044116: Waiting f11bbd657c82: Waiting denied: Permission "artifactregistry.repositories.downloadArtifacts" denied on resource "項目/something-docker/locations/australia-southeast1/repositories/test-signup-api”(或者它可能不存在)

任何人都可以幫忙嗎?

我不確定您是否只是用不同的名稱編輯了 project_id,但乍一看,您似乎沒有使用正確的項目 ID 標記 Docker 圖像,因此它試圖推送到一個不存在的項目。

在“使用 gcloud 進行身份驗證”步驟中,您已將項目 ID 定義為: project_id: something-dev-tooling

所以將 docker 標簽更改為正確的項目 ID,它將是:

docker tag test-signup-api australia-southeast1-docker.pkg.dev/something-dev-tooling/test-signup-api:$tagname
docker push australia-southeast1-docker.pkg.dev/something-dev-tooling/test-signup-api:$tagname

現在,如果您要推送到不同的項目 ID(而不是您使用 gcloud 進行身份驗證的那個),您的服務帳戶將需要具有跨項目的權限才能從不同的項目推送/下載圖像。

暫無
暫無

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

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