我目前正在尝试运行一个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
6条答案
按热度按时间xsuvu9jc1#
所提供的解决方案对我不起作用,我不得不将我的存储库添加到软件包设置中,如问题https://github.community/t/unable-to-push-to-ghcr-io-from-github-actions/191761/3中所述
转到套餐的套餐设置(右侧/底部)
并配置“Manage Actions access”部分,以允许git仓库对这个包/docker仓库具有写权限--所以在添加仓库时,一定要选择“Write”。
f4t66c6m2#
我也面临着同样的问题。为了解决这个问题
转到用户/组织主页并单击
Packages
选项卡单击出现
permission_denied
错误的软件包在右侧边栏底部,单击
Package settings
选项x1c 0d1x在
Manage Actions access
上,将软件包角色更改为write
完成。现在重新运行操作,您将发现问题已解决。
gkn4icbw3#
对于那些感兴趣的人,我设法解决了我的问题,虽然不太确定如何或更确切地说,我使用的步骤,确实帮助我解决了这个问题。
所以基本上,我首先撤销了我的令牌,并创建了一个新的,然后我像这样登录到docker,在我使用
docker.pkg.github.com
之前,然后设法手动将我的docker映像推到GitHub Package Registry
,然后使GitHub Action
流工作,虽然我没有改变那里。我希望这对有同样问题的人有帮助。
qmb5sa224#
尝试将登录步骤添加到您的作业:
qni6mghb5#
我只是想添加一个替代解决方案的人谁是运行到这个错误,并找到这个页面从谷歌结果。
如果你之前已经从一个forked repo创建了一个包,然后用相同的包名forked了一个不同的repo,Github的操作将会失败,进入你的包设置并删除这个包,它应该会再次成功。
4ioopgfo6#
当前您精确了github令牌,但没有精确DOCKERHUB_USERNAME和DOCKERHUB_TOKEN的密码。您需要在存储库中定义新密码DOCKERHUB_USERNAME和DOCKERHUB_TOKEN,如https://docs.github.com/en/actions/reference/encrypted-secrets中所示。
您还必须在dockerhub网站门户上创建一个dockerhub令牌。
您还需要在构建和推送操作之前添加此示例代码。