docker GitHub:拒绝:权限被拒绝:写入包

6pp0gazn  于 2023-01-01  发布在  Docker
关注(0)|答案(6)|浏览(220)

我目前正在尝试运行一个docker GitHub Action来构建并推送一个docker映像到GitHub包,但是我收到了一个我从未见过的错误。由于某种原因,它无法推送docker映像,因为write_permission被拒绝,但是我有一个令牌允许我写入,所以我不知道问题是什么。
这是我的行动文件:

name: Docker Image CI

on:
  workflow_dispatch:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 16
      uses: actions/setup-java@v1
      with:
        java-version: 16
    - name: Build with Maven
      run: mvn -f ACS/pom.xml clean install dependency:copy-dependencies
    - name: Login to GitHub Package Registry
      run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u ${{ github.repository }} --password-stdin
    - name: Build the Docker image
      run: docker build -t image:latest .
    - name: Tag the Docker image
      run: docker tag image:latest docker.pkg.github.com/organization/repository/image:latest
    - name: Push the Docker image to the registry
      run:  docker push docker.pkg.github.com/organization/repository/image:latest

这是我的错误:
Run docker push docker.pkg.github.com/organization/repository/image:latest The push refers to repository [docker.pkg.github.com/organization/repository/image] f0eaf014e806: Preparing 7d0bad636b3f: Preparing aa0870e7c621: Preparing 36d2f9f005e6: Preparing 22bb3686ee25: Preparing 05e198868a20: Preparing b5cea4a3dd43: Preparing 93c7a8a0e1f4: Preparing 7f4b55b885b0: Preparing 05e198868a20: Waiting b5cea4a3dd43: Waiting 93c7a8a0e1f4: Waiting 7f4b55b885b0: Waiting denied: permission_denied: write_package

xsuvu9jc

xsuvu9jc1#

所提供的解决方案对我不起作用,我不得不将我的存储库添加到软件包设置中,如问题https://github.community/t/unable-to-push-to-ghcr-io-from-github-actions/191761/3中所述
转到套餐的套餐设置(右侧/底部)
并配置“Manage Actions access”部分,以允许git仓库对这个包/docker仓库具有写权限--所以在添加仓库时,一定要选择“Write”。

f4t66c6m

f4t66c6m2#

我也面临着同样的问题。为了解决这个问题

  • 转到用户/组织主页并单击Packages选项卡

  • 单击出现permission_denied错误的软件包

  • 在右侧边栏底部,单击Package settings选项x1c 0d1x

  • Manage Actions access上,将软件包角色更改为write

  • 完成。现在重新运行操作,您将发现问题已解决。

gkn4icbw

gkn4icbw3#

对于那些感兴趣的人,我设法解决了我的问题,虽然不太确定如何或更确切地说,我使用的步骤,确实帮助我解决了这个问题。
所以基本上,我首先撤销了我的令牌,并创建了一个新的,然后我像这样登录到docker,在我使用docker.pkg.github.com之前,然后设法手动将我的docker映像推到GitHub Package Registry,然后使GitHub Action流工作,虽然我没有改变那里。
我希望这对有同样问题的人有帮助。

qmb5sa22

qmb5sa224#

尝试将登录步骤添加到您的作业:

- name: Login to GitHub Container Registry
  uses: docker/login-action@v1
  with:
    registry: ghcr.io
    username: ${{github.actor}}
    password: ${{secrets.GITHUB_TOKEN}}
qni6mghb

qni6mghb5#

我只是想添加一个替代解决方案的人谁是运行到这个错误,并找到这个页面从谷歌结果。
如果你之前已经从一个forked repo创建了一个包,然后用相同的包名forked了一个不同的repo,Github的操作将会失败,进入你的包设置并删除这个包,它应该会再次成功。

4ioopgfo

4ioopgfo6#

当前您精确了github令牌,但没有精确DOCKERHUB_USERNAME和DOCKERHUB_TOKEN的密码。您需要在存储库中定义新密码DOCKERHUB_USERNAME和DOCKERHUB_TOKEN,如https://docs.github.com/en/actions/reference/encrypted-secrets中所示。
您还必须在dockerhub网站门户上创建一个dockerhub令牌。
您还需要在构建和推送操作之前添加此示例代码。

name: Login to DockerHub
        uses: docker/login-action@v1 
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

相关问题