gpt4 book ai didi

docker - 使用 docker 持续部署

转载 作者:行者123 更新时间:2023-12-02 18:42:55 27 4
gpt4 key购买 nike

我实际上正在使用一个堆栈,它允许我在我的集​​成/部署系统中进行一些自动化。

实际上我的工作方式如下:

  • 我将代码推送到 github 存储库
  • Jenkins 嗅探 repo 并构建软启动单元测试
  • 如果进行单元测试(或其他类型的测试,无论如何),它会通过连接到 SSH 并告诉 Rundeck 部署到我的服务器(在我的情况下为 3 个)并告诉:“嘿家伙,你必须从 github 拉,新的软版本可用",然后它重新启动相关服务,我的软件现在是最新的

  • 好的,如果我错了,请告诉我,但这似乎是一个很好的解决方案,对吗?

    然后,我想将我的应用程序容器化,而现在,我有些头疼。

    第一种解决方案

    事实上,我想知道类似的事情:
  • 推送到github
  • Jenkins 测试,构建 docker 镜像
  • Rundeck 推送到 docker hub 并告诉 3 个服务器从 hub 拉回新镜像并通过 SSH
  • 运行它

    问题:它将在另一个容器中运行(同一图像的多个 docker 运行,但版本不同:()

    第二种解决方案

    第二个解决方案是:
  • 推送到github
  • Jenkins 测试并告诉 rundeck 测试成功,无需创建“真实构建”(仅用于测试)
  • Rundeck 通过 ssh 连接到正在运行的容器并请求拉取修改,然后重新启动 docker 容器

  • 问题:我被迫在所有容器中使用 ssh

    我不知道如何绕过我的问题,最好的解决方案是什么......

    谢谢你的帮助

    最佳答案

    我认为解决方案 1 没有任何问题。

    1.使用jenkins构建生产版本

    2.将它(通过 jenkins)推送到您的私有(private) docker 注册表

    3.告诉 Rundeck/Ansible/Chef/Puppet 要求 3 个服务器拉取最新的镜像并重启容器。

    但是,强烈建议制定一些策略,考虑 蓝绿色如果发生崩溃,原则和回滚。

    关于docker - 使用 docker 持续部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33018526/

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