是否可以从CI运行程序上下文之外的脚本自动登录到Gitlab注册表?
我有一个非常简单的部署过程,它使用的是一个自制的脚本,简单地说,它做了以下工作:
与Gitlab注册中心的每一次交互都需要以下内容:
docker login registry.gitlab.com它将提示输入我的用户名/密码。我更希望能做这样的事:
docker login -u <username> -p <password> registry.gitlab.com这样我就可以实现部署的真正自动化。
我看过Gitlab的文档,花了一些时间在Google上搜索,但我找到的所有参考资料都与使用Gitlab的CI运行程序有关,我在用例中不需要它。
我想达到的目标是可能的吗?
发布于 2016-12-30 03:53:55
绝对一点儿没错!当您执行docker login your.docker.registry.com时,所发生的情况是:
$HOME/.docker/config.json创建一个文件这是在官方码头文档中概述的。
config.json是一个非常容易理解和很容易在shell脚本中回音的脚本。成功登录后,可以查看生成的config.json。
本质上,这意味着您可以在bash脚本中执行类似的操作:
echo '{"auths":{"registry.gitlab.com":{"auth":"base64encodedcredentials"}}}' > ~/.docker/config.json
一旦机器在正确的位置上有了这个文件,它就不应该在拖动图像时提示您输入登录名或密码。
请记住,--您的用户名和密码--以base64编码格式存储在此文件中。如果这让您感到困扰,您可能需要另一组专用凭证。
https://stackoverflow.com/questions/41387990
复制相似问题