我尝试在github-actions中建立一个运行私有docker映像的作业,我将使用容器选项. link在docker映像中进行构建。
我使用下面的代码:
jobs:
container1:
runs-on: ubuntu-latest
container: saeed/privateimage:1
steps:
- uses: actions/checkout@v2
- run: |
echo "Runs inside a container"
但我不能提供我的码头枢纽凭据,所以它失败了。
我怎样才能通过身份验证来提取该私有映像?
谢谢。
3条答案
按热度按时间quhf5bfb1#
对于那些试图在作业或步骤中使用发布到
ghcr.io
的新GitHub Docker Container Registry的***自定义***Docker映像的用户,这是我所做的。步骤
1.创建个人访问令牌,如GitHub文档中新Docker容器注册表所示。为此,请转到
GitHub Account > Settings > Developer Settings > Personal Access Tokens
并为令牌选择以下选项:1.进入你项目的GitHub仓库,然后进入
Settings > Secrets > New Secret
,创建一个密码,如下所示:1.将该令牌放入计算机环境中,如下所示(或直接复制,以合适的方式):
1.将您的Docker映像推送到
ghcr.io/<YOUR_USERNAME>/<IMAGE_NAME>:<IMAGE_TAG>
。为此,您可以在文档"将Docker映像推送到GitHub Docker容器注册表"中找到。本质上,您可以在计算机中执行以下操作:1.然后,在存储库的
.github/workflows/
文件夹下创建一个action,在本例中,我们将其命名为super-action
:1.打开
super-action.yml
操作,您可以执行如下操作:结果编号
当你把一些东西推到repo之后,你应该看到类似这样的东西在你的动作中运行,在下面的截图中,我使用了我自己的docker图像found here和
super-action
。然后,您可以看到作业的
run
命令正在使用Docker映像的容器中执行!yv5phkfx2#
看起来今天已经添加了对它的支持,请参见blog post。
文章用了这个例子:
container
的文档在这里。o4hqfura3#
更新:检查@本杰明W.的answer。GitHub行动added Private registry support for job and service containers。
这些文档指出
jobs.<job_id>.container.image
应该是一个公开可用的映像:“用作运行操作的容器的Docker映像。该值可以是Docker Hub映像名称或公共Docker注册表名称。”
您可以将用于访问专用
docker
注册表的凭据配置为secrets,然后使用密码登录并运行您的专用映像,例如: