是否可以从CI跑者上下文之外的脚本自动登录Gitlab注册表?
我有一个非常简单的部署过程,其中包含一个自制的脚本,简而言之:
与Gitlab注册表的每次互动都需要以下内容:
docker login registry.gitlab.com
将提示我的用户名/密码。我希望能够做到这样的事情:
docker login -u <username> -p <password> registry.gitlab.com
这样我就可以实现部署的真正自动化。
我查看了Gitlab的文档并花了一些时间在Google上搜索,但我发现的所有参考资料都与使用Gitlab的CI跑步者有关,我不需要用例。
我试图实现的目标是什么?
答案 0 :(得分:1)
绝对!
当您执行docker login your.docker.registry.com
时,会发生什么:
$HOME/.docker/config.json
官方泊坞窗documentation中概述了这一点。
config.json
非常容易理解,很容易在shell脚本中回显。成功登录后,您可以查看生成的config.json
。
基本上这意味着您可以在bash脚本中执行类似的操作:
echo '{"auths":{"registry.gitlab.com":{"auth":"base64encodedcredentials"}}}' > ~/.docker/config.json
一旦机器将此文件放在正确的位置,它就不会在提取图像时提示您输入登录名或密码。
请记住您的用户名和密码以base64编码格式存储在此文件中。如果这让您感到困扰,您可能需要另一套专用凭证。