我有两个存储库。A和B.
在A里面,我有一个码头形象。假设它的名字是ghcr.io/org/a
在B里面,我有一个动作想要使用这个包。两次回购都是私人的。
这是我的行动守则:
- name: Log in to GitHub Container Repository
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Pull the image
run: |
docker pull ghcr.io/org/a:latest 正如您首先看到的,我登录到ghcr.io并得到Login succeeded消息。然后我想从我的另一个回购中提取图像。
但我知道这个错误:
来自守护进程的
错误响应:拒绝
但是,当我从自己的机器登录到ghcr.io时,我可以访问这两个存储库,并且可以从我的任何私有存储库中提取任何图像。
为什么B的GitHub动作在登录后不能从A中提取图像?
发布于 2022-08-15 04:29:45
你给回购B明确的访问包了吗?
https://github.com/orgs//packages/container//settings
发布于 2022-08-21 22:24:56
我遇到了同样的问题,但以下几点对我来说是有效的:
首先,正如@SalTorre所建议的那样,我需要通过
https://github.com/orgs/org/packages/container/a/settings接下来,在映像存储库(在您的例子中是org/a)中,我需要向需要在GHA中启动使用该映像的工作流的每个用户(或一组包含所述用户的团队)具体授予权限。这是因为身份验证使用${{ github.actor }}的凭据,后者是发起工作流的特定GitHub操作用户。
这样做的URL在这里:
https://github.com/org/a/settings/access通过设置这两个权限,我的工作流能够使用我定制的容器。
https://stackoverflow.com/questions/73302997
复制相似问题