在 Github 上拉取和推送图像操作失败

问题描述 投票:0回答:1

我正在学习 testdriven.io 课程 使用 FastAPI 和 Docker 进行测试驱动开发

我已经读完持续集成章节了,我刚刚推送了包含所有 GitHub 操作的 pull request,但它失败了。

我的 GitHub 操作错误:

actions fails

以下是我的个人访问令牌设置:

personal access token

我尝试了不同的方法来使其工作,从扩展访问令牌范围到用 Github 提到的 ghcr.io 替换 docker.pkg.github.com,但没有成功。

continuous-integration github-actions github-packages github-container-registry
1个回答
1
投票

我个人的解决方案


我设法解决了问题,但我不熟悉 DevOps、CI/CD、GithHub 操作和 Docker 注册表。因此,接下来的一切都应该谨慎对待。

向构建作业添加新步骤:


.github/workflows/main.yml中的“GitHub登录包”步骤之后,添加此步骤:

- name: Login to Docker registry
    uses: docker/login-action@v2
    with:
      registry: docker.pkg.github.com
      username: ${{ github.actor }}
      password: ${{ secrets.DOCKER_TOKEN }}

创建存储库机密 DOCKER_TOKEN,然后粘贴您的 docker 令牌。

转到您的 Docker 帐户 页面并单击“安全”选项卡以访问您的 Docker 令牌。从那里,您可以导航到 “访问令牌”部分,您应该在其中看到您的 现有代币。

如果您没有任何现有代币,您可以通过以下方式创建一个新代币 单击“新访问令牌”按钮并按照提示操作。 获得令牌后,您可以使用 Docker 进行身份验证 并访问私人图像。

要授权您的令牌,请单击下一步的“授权”按钮 访问令牌列表中的令牌。这将授予令牌 访问拉取所需 Docker 所需资源的权限 图像。

可选:


  1. 要修复 Github 操作警告,您可以将:actions/[电子邮件受保护]更改为
    actions/checkout@v3docker/login-action@v1
    .github/workflows/main.yml 文件中的 docker/login-action@v2
  2. 由于 GitHub 从 Docker 注册表迁移到容器 注册表,您还可以将
  3. docker.pkg.github.com 替换为 ghcr.io。它 将使代码更清晰且最新。
  4. 最后,如果你像我一样,先推送“拉取请求” 合并,将
  5. ref: main 替换为 ref: ${{ github.head_ref }} 始终位于 .github/workflows/main.yml 中。它将修复您在课程的持续交付章节中可能遇到的 GitHub 操作问题
© www.soinside.com 2019 - 2024. All rights reserved.