bil*_*ani 20 github docker-registry github-actions
我有一个 Github 组织,并尝试将容器注册表从 迁移docker hub到GitHub Packages. 通过使用 Github Workflows,这是我用来将 docker 推送到的 yaml GitHub Packages:
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 }}
Run Code Online (Sandbox Code Playgroud)
GitHub 建议在操作工作流程中使用 GITHUB_TOKEN,我已经仔细检查了它在我的组织设置中是否具有读写权限,但他们给了我这个错误
Error: buildx failed with: error: denied: permission_denied: write_package
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
sih*_*hil 22
我认为你可能需要在这里做两件事:
第二个涉及将此代码段添加到您的工作流程作业中(请注意,如果您仅拉取容器,则可以读取此权限):
permissions:
packages: write
Run Code Online (Sandbox Code Playgroud)
在您的工作流程中:
name: ghcr_test
on:
push:
branches:
- dev
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
packages: write
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 }}
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,最终偶然发现了该许可,突然一切都开始工作了。希望它也适合你。
小智 6
我已经成功修复了 403 错误并与 GITHUB_TOKEN 保持一致。
\n从您的组织 github 主页面 \xe2\x86\x92 软件包 \xe2\x86\x92 $yourPackage \xe2\x86\x92 软件包设置 \xe2\x86\x92 \xe2\x80\x9c管理操作访问 \xe2\x80\x9d 部分
\n将具有写入权限的 git 存储库与此包/docker 存储库连接起来
\nhttps://github.com/orgs/community/discussions/26274#discussioncomment-3251137
\n似乎 GITHUB_TOKEN 仅适用于默认分支...在 PR 分支上运行时需要使用自定义 PAT
另请检查这是否与此讨论类似:
事实证明,另一个组织成员推送了同一个包,该包默认是私有的,并且由该组织成员拥有。
由于没有其他人能够看到该包的存在,我们感到非常困惑。我认为新包的默认行为由用户上传私有,甚至组织所有者也不可见,这是相当令人困惑的。
如果没有,请尝试按照此处所述手动进行推送,以验证您的令牌(使用 a docker login -u USERNAME -p TOKEN ghcr.io,然后使用 a docker push)。GitHub 操作可能会起作用。
| 归档时间: |
|
| 查看次数: |
24700 次 |
| 最近记录: |