尽管我已登录,但无法从 github 操作推送到 ghcr.io

问题描述 投票:0回答:1

我正在尝试将图像推送到 ghcr.io,但尽管我已成功登录,但它失败并出现 403 错误。 我的操作文件是:

on: [release]
env:
  REGISTRY_IMAGE: ghcr.io/<my github>/<my repo>
  PLATFORMS: linux/amd64,linux/arm64

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Login to GHCR.io
        uses: docker/login-action@v3
        with:
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}
          registry: ghcr.io
      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.REGISTRY_IMAGE }}
          tags: |
            type=semver,pattern={{version}}
      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          platforms: ${{ env.PLATFORMS }}
          push: ${{ github.event.action == 'published' }}
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}

当我发布版本时,登录步骤成功执行:

然后镜像构建完成但是推送失败:

#19 ...
#20 [auth] <my github>/<my repo>:pull,push token for ghcr.io
#20 DONE 0.0s
#19 exporting to image
#19 exporting manifest sha256:4cee9ce71a59621cb01da05fe096c4bc1af3d845be2dfa0ef6818bb308a8425f done
#19 exporting config sha256:9252c23b5821f41775fe2972a0a1084da73402989e175f58eb3499724d4a62e9 done
#19 exporting attestation manifest sha256:6fde955ef869eff278ff308c08d68eddc5fb89ff58b9d07c091dab4d8d805526 done
#19 exporting manifest sha256:80a4f338413b816a94fa54b57d5fcc73a5f4f2b2997af1d08e7c51e0a4282294 done
#19 exporting config sha256:a1bba033e73c64e554cfd6576ef057444b40513e681e6a808b322de73d03b1e8 done
#19 exporting attestation manifest sha256:de53d2e47d2c5e63dde15e96bad1bc806dd8b5f3368ca5afab031526342ea245 done
#19 exporting manifest list sha256:63534ced839b9d4dd250a87c22f13c872494a3a8e2fc62718b177401ec7b0e56 done
#19 pushing layers
#19 pushing layers 0.2s done
#19 ERROR: failed to push ghcr.io/<my github>/<my repo>:0.2.1: unexpected status from POST request to https://ghcr.io/v2/<my github>/<my repo>/blobs/uploads/: 403 Forbidden
------
 > exporting to image:
------
ERROR: failed to solve: failed to push ghcr.io/<my github>/<my repo>:0.2.1: unexpected status from POST request to https://ghcr.io/v2/leolivier/cousins-matter/blobs/uploads/: 403 Forbidden
Error: buildx failed with: ERROR: failed to solve: failed to push ghcr.io/<my github>/<my repo>:0.2.1: unexpected status from POST request to https://ghcr.io/v2/<my github>/<my repo>/blobs/uploads/: 403 Forbidden

编辑:我的存储库已在我的包上注册为管理员角色。

github github-actions ghcr
1个回答
0
投票

您很可能缺少包的写入权限,因为您使用的是默认角色。尝试向您的作业添加权限,如下所示:

jobs:
  docker:
    runs-on: ubuntu-latest
    permissions:
      packages: write
    ...
© www.soinside.com 2019 - 2024. All rights reserved.