docker 从github操作服务部分访问github包

0sgqnhkj  于 2023-02-07  发布在  Docker
关注(0)|答案(1)|浏览(188)

使用GitHub Actions,我试图设置一个服务,运行我推送到www.example.com的特定映像(MySQL预加载了一个数据库),但是当它运行时,我得到这个错误:ghcr.io however when it runs I get this error:

Error response from daemon: denied
Warning: Docker pull failed with exit code 1, back off 8.976 seconds before retry.

工作流程:

services:
  mysql:
    image: ghcr.io/my-name/my-image
    ports:
      - 3306:3306

我看到它有以下功能:

/usr/bin/docker --config /home/runner/work/_temp/.docker_[...] login ghcr.io -u myusername --password-stdin

没有反馈,所以不确定是否已登录。然后:

/usr/bin/docker --config /home/runner/work/_temp/.docker[...] pull ghcr.io/my-name/my-image

然后我得到了那个错误。
我已经找到了很多使用GITHUB_TOKEN的例子(见下文),但没有在services部分中找到如何使用它的例子,所以我不确定这是否有效,或者语法是什么。那么它是否可以与services一起使用呢?同时,我也给了定义GitHub操作的仓库对特定包的访问权限。

steps:
  - name: Checkout repository
    uses: actions/checkout@v3

  - name: Log in to the Container registry
    uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
    with:
      registry: ${{ env.REGISTRY }}
      username: ${{ github.actor }}
      password: ${{ secrets.GITHUB_TOKEN }}
ee7vknir

ee7vknir1#

所以我终于发现了这个问题,在我的工作流程(从默认模板开始)我有:

permissions:
  contents: read

然后我看到了这个
在工作流中设置权限
通过工作流和作业级别支持的新权限密钥,您可以指定希望令牌具有哪些权限。列表中缺少的任何权限都将设置为无。
这导致 packages 被设置为none。正在删除全部权限或添加:

packages: read

修复了我遇到的这个问题,谢谢你的帮助。

相关问题