如何在github操作中使用私有docker映像
我试图在github actions中设置一个运行私有docker映像的作业。我将使用container选项在docker映像内部进行构建 我正在使用以下代码:如何在github操作中使用私有docker映像,docker,github-actions,Docker,Github Actions,我试图在github actions中设置一个运行私有docker映像的作业。我将使用container选项在docker映像内部进行构建 我正在使用以下代码: jobs: container1: runs-on: ubuntu-latest container: saeed/privateimage:1 steps: - uses: actions/checkout@v2 - run: | echo "Runs
jobs:
container1:
runs-on: ubuntu-latest
container: saeed/privateimage:1
steps:
- uses: actions/checkout@v2
- run: |
echo "Runs inside a container"
但我不能提供我的docker hub信誉,所以它失败了
如何进行身份验证以提取该私有映像
谢谢。更新:检查。GitHub操作
指示
jobs..container.image
应该是公共可用的映像:
“要用作运行操作的容器的Docker映像。该值可以是Docker Hub映像名或公共Docker注册表名。”
您可以配置访问私有docker
注册表的凭据,然后使用机密登录并运行您的私有映像,例如:
test:
name: test
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: example.com docker registry login
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login example.com -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: run backend tests using example.com/my-image
run: |
docker run --rm -i \
-v ${PWD}:/workspace/source \
-e PYTHONPATH=/workspace/source \
-e DJANGO_SETTINGS_MODULE="www.settings" \
-w /workspace/source \
--entrypoint tox \
example.com/my-image
看起来今天刚刚添加了对此的支持,请参阅 《华盛顿邮报》使用了以下示例:
作业:
建造:
容器:
图片:octocat/ci图片:最新
资格证书:
用户名:mona
密码:${secrets.docker\u hub\u password}
服务:
db:
图片:octocat/testdb:latest
资格证书:
用户名:mona
密码:${secrets.docker\u hub\u password}
容器
的文档是。对于那些试图使用自定义Docker映像的人,我就是这样做的,该映像发布到位于ghcr.io
的新GitHub Docker容器注册表中
台阶
GitHub帐户>设置>开发人员设置>个人访问令牌
,并为令牌选择以下选项:设置>机密>新机密
,创建如下机密:
导出DOCKER\u容器\u注册表\u令牌=
ghcr.io/:
。为此,您可以在的文档中找到。本质上,您可以在计算机中执行以下操作:
#登录到您的ghcr.io
echo$DOCKER_容器_注册表_令牌| DOCKER登录-u--密码标准
#作为一个例子,这里我拉一个图像,标记它,然后推它。
docker pull ubuntu:18.04
docker tag ubuntu:18.04 ghcr.io//my_special_ubuntu:最新版本
docker push ghcr.io//my_special_ubuntu:最新版本
.github/workflows/
文件夹下创建一个操作。在本例中,我们将其命名为super action
:
#您可以在使用的任何编辑器中创建文件。
#这可以做的工作,虽然。。。
cd$YOUR\u PROJECT\u PATH/.github/workflows
touch super-action.yml
super action.yml
操作,您可以执行以下操作:
#动作名称
名称:超级行动
#在这里,此操作将在所有推送上启用。
#修改此选项以满足您的需要。
关于:
推
#就业科
工作:
#将使用您刚刚推送到ghcr.io的容器映像的作业
超级工作:
运行日期:ubuntu-18.04
容器:
图片:ghcr.io//:
资格证书:
用户名:
密码:${secrets.DOCKER\u CONTAINER\u REGISTRY\u TOKEN}
步骤:
-名称:超级步骤
shell:bash
运行:|
#使用容器和
#ghcr.io上的新Docker图像!>
echo”--这在我的自定义Docker映像中运行--”
超级动作
然后,您可以看到作业的run
命令在容器中使用Docker图像执行!
谢谢你的帮助。是的,我也注意到了。合法。请注意,当
操作运行程序
在容器内运行时,不支持容器
功能(错误:当运行程序已在容器内运行时,不支持容器功能。
)。我仍然必须使用语法。在Kubernetes跑步的自我托管跑步者。