Google Container Registry, Docker Buildx 및 GitHub 작업 사용

3581 단어 gcrbuildxdockergcp
오늘은 docker/build-push-action을 Google Container Registry(GCR)와 통합하려고 했습니다. 빌드를 작동시킬 수 있었지만 인증 문제로 인해 GCR에 이미지를 푸시할 수 없었습니다. 솔루션에는 다음이 포함됩니다.
  • google-github-actions/auth 작업을 사용하여 Google Cloud에 인증합니다.
  • Google Cloud 자격 증명을 사용하도록 Docker CLI를 구성하기 위해 gcloud auth configure-docker --quiet gcr.io를 호출합니다.

  • 워크플로는 다음과 같습니다.

    - name: Setup auth
      id: "auth"
      uses: "google-github-actions/auth@v0"
      with:
        workload_identity_provider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }}
        service_account: "github-deployer@${{ secrets.GOOGLE_CLOUD_PROJECT }}.iam.gserviceaccount.com"
    - name: Setup docker
      uses: docker/setup-buildx-action@v2
    - name: Authenticate docker
      run: |
        gcloud auth configure-docker --quiet gcr.io
    - name: Build and push
      uses: docker/build-push-action@v3
      with:
        context: .
        push: true
        tags: ${{ env.IMAGE }}
        cache-from: type=gha
        cache-to: type=gha,mode=max
    


    GCR에서 작동하는 캐시를 가져올 수 없습니다. 버그인지 아니면 내가 뭔가 잘못하고 있는지 잘 모르겠습니다.

    IAM 역할



    또한 Storage Legacy Bucket Writer 서비스 계정에 추가하기 위해 github-deployer@를 기반으로 사용자 정의 역할을 생성했습니다.



    여기에는 다음 권한이 포함됩니다.
  • storage.buckets.get
  • storage.multipartUploads.abort
  • storage.multipartUploads.create
  • storage.multipartUploads.list
  • storage.multipartUploads.listParts
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.list

  • 그리고 그것은 작동합니다! 🎉

    좋은 웹페이지 즐겨찾기