代码之家  ›  专栏  ›  技术社区  ›  flipcode

应用程序远程安装时创建Docker映像

  •  0
  • flipcode  · 技术社区  · 6 年前

    我有一个应用程序,它由三个服务器组成,每个服务器上有一个组件。

    • Server1=组件A
    • 服务器2=组件B
    • 服务器3=组件C

    当您在Server1上启动安装时 军队 在服务器2上安装组件B,在服务器3上安装组件C,在服务器1上安装组件A。

    如果我在Server2上启动安装,它同样会在相应的服务器上安装其他组件。

    这也意味着必须有正在运行的“远程”服务器,因为它通过SSH连接到这些远程服务器以复制文件并安装它们。如果它检测到应用程序已经存在,它也会拒绝在节点上安装该应用程序。

    它的工作原理只是让没有经验的人更容易,但更难控制。卖主知道,也许将来会改变,但现在就是这样。

    我正在尝试制定策略,为每个组件创建单独的图像。一些想法:

    1. 在每台服务器上运行安装程序,然后以这种方式创建映像。那就意味着我需要安排开始 新鲜的 遥远的 为每个组件构建映像时的容器。
    2. 开始3x 新鲜的 容器,在其中任何一个上运行安装程序,然后使用docker commit创建映像。可能有用,但我不喜欢它使所有容器步骤都无法编码。
    3. 可能是多阶段文件?我不太确定。
    4. 还有别的吗?

    谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   David Maze    6 年前

    如果你不能控制这个安装系统 要求 三台主机,作为安装过程的一部分与另外两台主机进行远程连接,那么将很难将其转换为Docker映像,而且应用程序供应商将能够更好地为您提供这种连接。

    如果你知道安装 只有 将软件安装到特定的位置,然后原则上可以运行一次安装,使tar文件 /opt/theapp 在三个系统中的每一个上,然后编写最小的dockerfile ADD tar文件包含三个图像中的每一个。尽管如此,您仍然希望安装程序为您进行一些配置(例如,这三个系统的主机名可能是这样的),并且您必须将其重新创建为启动时入口点脚本或类似的脚本。

    与其使用Docker,不如使用虚拟机系统或您最喜欢的云提供商,运行安装程序,并创建三个系统级映像,以后可以重新部署。如果Docker是 真正地 然后与供应商合作的需求将是最好的方法。