如何使用 Github Actions 登录 Github Container Registy

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

我正在尝试编写一个 GitHub actions 脚本来自动构建 docker 镜像,然后在新代码签入主分支时将其推送到 GitHub 容器注册表中。这是我用来尝试登录容器注册表的代码:

name: Build and publish Docker image.
on: [push]
jobs:
  publish-docker-image:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Login to GitHub Container Registry
      uses: docker/login-action@v1
      with:
        registry: ghcr.io
        username: ${{github.actor}}
        password: ${{secrets.CONTAINER_REG_ACCESS}}

为了了解更多上下文,CONTAINER_REG_ACCESS 密钥是个人访问令牌,尽管它是由我组织的其他成员创建的。

在 GitHub 对我的拉取请求运行自动化测试后,此错误出现在 GitHub 中。

Run docker/login-action@v1
Logging into ghcr.io...
Error: Error response from daemon: Get "https://ghcr.io/v2/": denied: denied

使用 GitHub 操作脚本登录 GitHub 容器注册表的最佳实践是什么?有没有办法使用组织凭据而不是我的个人 GitHub ID 登录?

github-actions docker-image ghcr github-container-registry
1个回答
0
投票

自从您发布问题以来,已有更新。因此,只要令牌权限正确,您原来的 github 操作片段就应该可以工作。

以下两种方法现在都可以正常工作:

1。使用最新的 docker/login-action@v3

来源:https://github.com/docker/login-action#github-container-registry

name: Build and publish Docker image.
on: [push]
jobs:
  publish-docker-image:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Login to GitHub Container Registry
      uses: docker/login-action@v3
      with:
        registry: ghcr.io
        username: ${{github.actor}}
        password: ${{ secrets.GITHUB_TOKEN }}

2。或者,使用终端 docker 登录命令

name: Build and publish Docker image.
on: [push]
jobs:
  publish-docker-image:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Login to GitHub Container Registry
      run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login ghcr.io -u ${{github.actor}} --password-stdin

在这里查看另一个答案:https://stackoverflow.com/a/58229226/17546520

© www.soinside.com 2019 - 2024. All rights reserved.