【问题标题】:Cannot pull from GitHub Packages from GitHub Actions无法从 GitHub Actions 从 GitHub Packages 拉取
【发布时间】:2022-01-19 23:00:17
【问题描述】:

我正在尝试通过从 GitHub Actions 中的 GHCR 拉取来设置测试。 根据文档,应使用GITHUB_TOKEN。 所以我有以下设置:

name: CI
on: push

env:
  REGISTRY: ghcr.io

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      packages: read
    steps:
      - name: Log in to the Container registry
        uses: docker/login-action@v1
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: pull
        run: |
          docker pull ghcr.io/username/terraform-provider-skopeo/alpine:latest

这些步骤的输出是:

Logging into ghcr.io...
Login Succeeded!

Error response from daemon: unauthorized

不太清楚授权问题出在哪里。

【问题讨论】:

    标签: docker github-actions ghcr


    【解决方案1】:

    您实际上需要明确授予 Repo 的操作权限:https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#upgrading-a-workflow-that-accesses-ghcrio

    必要的步骤是:

    • 导航到您的包裹着陆页。

    • 在左侧边栏中,单击操作访问。左侧菜单中的“操作访问”选项

      为确保您的容器包可以访问您的工作流程,您必须将存储工作流程的存储库添加到您的容器中。单击添加存储库并搜索要添加的存储库。

    • “添加仓库”按钮

      注意:通过操作访问菜单选项将存储库添加到容器与将容器连接到存储库不同。有关详细信息,请参阅“确保对包的工作流访问”和“将存储库连接到包”。

    • 或者,使用“角色”下拉菜单,选择您希望存储库对容器映像具有的默认访问级别。 授予存储库的权限访问级别

    • 打开您的工作流程文件。在登录 ghcr.io 的那一行,确保使用${{ secrets.GITHUB_TOKEN }}(替换 PAT)。

    注意:仅将 Package 与 Repo 链接是不够的。

    【讨论】:

      猜你喜欢
      • 2020-08-10
      • 2021-06-19
      • 2022-11-18
      • 2020-04-06
      • 2011-12-11
      • 2019-01-19
      • 2022-01-13
      • 2020-10-01
      • 2019-05-05
      相关资源
      最近更新 更多