【问题标题】:GitHub Action Error: Docker pull failed with exit code 1GitHub 操作错误:Docker 拉取失败,退出代码为 1
【发布时间】:2022-01-16 18:46:21
【问题描述】:

我正在尝试使用带有 GitHub 操作的私有 docker 映像在 docker 容器内运行我的 npm 构建。

我的工作流yaml文件如下,

jobs:
  build:
    runs-on: Linux-self-hosted  # This is our self hosted linux runner system.
    container:
      image: ubuntu-20.04-lts:latest  # This is our private docker image.

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v2
      
    - name: Npm Build
      run: npm install

    - name: Build Package
      run: vsce package

GitHub 操作错误:-

启动作业容器 /usr/bin/docker pull ubuntu-20.04-lts:latest 来自守护进程的错误响应:ubuntu-20.04-lts 的拉取访问被拒绝, 存储库不存在或可能需要“docker login”:拒绝: 请求访问资源被拒绝警告:Docker pull 退出代码为 1 失败,在重试前退出 4.74 秒。
/usr/bin/docker pull ubuntu-20.04-lts:latest 来自的错误响应 守护进程:ubuntu-20.04-lts 的拉取访问被拒绝,存储库没有 存在或可能需要 'docker login': denied: 请求访问 资源被拒绝警告:Docker pull 失败,退出代码为 1, 在重试前退后 9.535 秒。 /usr/bin/docker 拉 ubuntu-20.04-lts:来自守护进程的最新错误响应:拉取访问 ubuntu-20.04-lts 被拒绝,存储库不存在或可能需要 'docker login':拒绝:请求访问资源被拒绝
错误:Docker 拉取失败,退出代码为 1

我在本地主机系统上有这个 ubuntu-20.04-lts:latest 私有 docker 映像。在动作构建期间它仍然失败并出现上述错误。

它看起来正在尝试连接 docker hub。如何解决此问题以使用我们的本地私有图像?

【问题讨论】:

  • 不确定您是否可以在那里使用本地私有图像。您在注册表中也有该图像吗?如果是这样,请尝试在图像前加上注册表名称(您也可以提供用户名/密码,如下所述:github.blog/changelog/…
  • 当前图像存在于主机系统中。尚未被推送到我们的私人注册表。当然,我会将图像推送到我们的私有注册表并尝试。
  • @rethab,非常感谢。图像需要推送到私有注册表并发布,在yaml 中需要添加以下内容。 credentials: username: mona password: ${{ secrets.docker_hub_password}} 示例帮助。
  • 很好 :) 我已将其添加为答案,因此我们可以将此问题标记为已解决 :)

标签: github github-actions github-actions-self-hosted-runners


【解决方案1】:

您必须将图像推送到您的私有注册表。一旦它在那里,您可以按照docs 中的描述为您的私有注册表配置凭据:

container:
  image: ghcr.io/owner/image
  credentials:
     username: ${{ github.actor }}
     password: ${{ secrets.ghcr_token }}

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 2021-03-26
    • 2020-10-10
    • 2023-02-18
    • 1970-01-01
    • 2012-01-22
    • 2018-07-12
    • 2015-10-12
    • 1970-01-01
    相关资源
    最近更新 更多