在GitHub工作流中生成和推送停靠器时GitHub_Token权限被拒绝写入包 [英] GITHUB_TOKEN permission denied write package when build and push docker in github workflows

查看:3
本文介绍了在GitHub工作流中生成和推送停靠器时GitHub_Token权限被拒绝写入包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Github组织,并尝试将容器注册表从docker hub迁移到GitHub Packages。通过使用Github工作流,以下是我用来将docker推送到GitHub Packages

的YAML
name: ghcr_test
on:
  push:
    branches:
      - dev

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Login to GitHub Packages
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Build and push Docker image
        uses: docker/build-push-action@v2
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.sha }}

GitHub建议在操作工作流中使用GitHub_Token,我已经在组织设置中重新检查它是否具有读写权限,但他们给了我此错误

Error: buildx failed with: error: denied: permission_denied: write_package

有帮助吗?

推荐答案

检查这是否与actions/runner issue 1039

有关
似乎GitHub_Token仅在默认分支上有效...在公关分支机构运行时,您需要使用自定义PAT

也检查这是否与this discussion类似:

原来另一个组织成员推送了相同的包,默认情况下该包是私有的,归该组织成员所有。
由于其他人甚至看不到该包的存在,我们非常困惑。

我认为这种默认行为,即新包由上传用户私有,甚至对组织所有者都不可见,这非常令人困惑。

如果没有,请尝试以described here方式手动推送,以验证您的令牌(先使用docker login -u USERNAME -p TOKEN ghcr.io,然后使用docker push)。然后,GitHub操作可能会起作用。

这篇关于在GitHub工作流中生成和推送停靠器时GitHub_Token权限被拒绝写入包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆