gpt4 book ai didi

docker - 是否可以在不使用CI运行器的情况下登录Gitlabs容器注册表?

转载 作者:行者123 更新时间:2023-12-02 19:38:42 24 4
gpt4 key购买 nike

是否可以从CI运行器上下文之外的脚本自动登录到Gitlab注册表?

我有一个使用自制脚本的非常简单的部署过程,该脚本简述如下:

  • 构建容器镜像
  • 推送到Registry.gitlab.com
  • 登录到目标服务器
  • 从registry.gitlab.com拉容器图像
  • 运行容器

  • 与Gitlab注册表的每次交互都需要满足以下条件:
    docker login registry.gitlab.com

    这将提示您输入我的用户名/密码。我希望能够做这样的事情:
    docker login -u <username> -p <password> registry.gitlab.com

    这样我就可以实现部署的真正自动化。

    我查看了Gitlab的文档,并花了一些时间在Google上进行搜索,但是我发现的所有引用文献都与使用Gitlab的CI运行器有关,我不需要用例。

    我正在努力实现的目标有可能吗?

    最佳答案

    绝对!
    当您执行docker login your.docker.registry.com时,会发生以下情况:

  • 您的机器尝试登录到指定的dockert注册表
  • 如果登录成功,它将在$HOME/.docker/config.json上创建一个文件

  • 官方docker documentation中对此进行了概述。
    config.json非常容易理解,并且很容易在shell脚本中回显。成功登录后,您可以查看生成的 config.json

    本质上,这意味着您可以在bash脚本中执行以下操作:
    echo '{"auths":{"registry.gitlab.com":{"auth":"base64encodedcredentials"}}}' > ~/.docker/config.json
    一旦机器在正确的位置放置了该文件,在拉取图像时不应提示您输入登录名或密码。

    请记住,您的用户名和密码 以base64编码格式存储在此文件中。如果这困扰您,您可能需要另一组专用凭据。

    关于docker - 是否可以在不使用CI运行器的情况下登录Gitlabs容器注册表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41387990/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com