我正在尝试将Docker容器推送到GCP上的Artifact Registry,但在步骤将Docker镜像推送到Artifact Registry
时遇到了错误。
被拒绝:权限"artifactregistry.repositories.uploadArtifacts"被拒绝在资源"projects/PROJECT_ID/locations/asia-south1/repositories/images"上(或者它可能不存在)错误:进程以退出代码1完成。
name: Build image and push to Artifact Registry of GCP
on:
push:
branches:
- master
jobs:
build-push-artifact:
name : Build and push Artifact Registry
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.ACCOUNT_KEY }}'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v1'
- name: 'Use gcloud CLI'
run: 'gcloud info'
- name: build Docker Image
run: docker build -t MY_IMAGE:latest .
- name: Configure Docker Client of Gcloud
run: |-
gcloud auth configure-docker --quiet
gcloud auth configure-docker asia-south1-docker.pkg.dev --quiet
- name: Push Docker Image to Artifact Registry
env:
GIT_TAG: v0.1.0
run: |-
docker tag MY_IMAGE:latest asia-south1-docker.pkg.dev/PROJECT_ID/images/MY_IMAGE:latest
docker tag MY_IMAGE:latest asia-south1-docker.pkg.dev/PROJECT_ID/images/MY_IMAGE:$GIT_TAG
docker push asia-south1-docker.pkg.dev/PROJECT_ID/images/MY_IMAGE:latest
docker push asia-south1-docker.pkg.dev/PROJECT_ID/images/MY_IMAGE:$GIT_TAG
我还将Artifact Registry Write主体添加到具有服务电子邮件的存储库中。除了最后一步之外,其他每一步都成功执行。我该如何修复它?
docker tag MY_IMAGE:latest gcr.io/PROJECT_ID/MY_IMAGE:latest
docker tag MY_IMAGE:latest gcr.io/PROJECT_ID/MY_IMAGE:$GIT_TAG
docker push gcr.io/PROJECT_ID/MY_IMAGE:latest
docker push gcr.io/PROJECT_ID/MY_IMAGE:$GIT_TAG
并且它成功了。 - Nikhil kumar