我有一个包含三个服务器的应用程序,每个服务器上都有一个组件。
在Server1上开始安装时,除了在Server1上安装组件A之外,它还会强制在Server2上安装组件B和在Server3上安装组件C。
如果我要在Server2上开始安装,它同样会在其他服务器上安装其他组件。
这也意味着必须有运行中的“远程”服务器,因为它通过SSH连接到这些远程服务器以复制文件并安装它们。哦,如果它检测到已经在节点上,它也拒绝在节点上安装该应用程序。
这是使经验不足的人“更轻松”的工作方式,但是很难进行容器化。供应商知道,也许将来会改变,但这就是现在。
我正在尝试制定策略,为每个组件创建单独的图像。一些想法:
在这里感谢任何帮助。
答案 0 :(得分:0)
如果您无法控制此安装程序系统-它需要三台主机,并在安装过程中与其他两台主机建立远程连接-那么很难将其变成Docker映像,应用程序供应商将可以为您提供更好的位置。
如果您知道仅安装 将软件安装到特定位置,则原则上您可以运行一次安装,在这三个系统中的每个系统上制作/opt/theapp
的tar文件,然后编写将tar文件内容ADD
{{1}}到三个映像中的每个映像的最少的Dockerfile。尽管如此,即使如此,您仍然希望安装程序为您做一些配置(例如,似乎三个系统的主机名),并且您必须将其重新创建为启动时入口点脚本或类似的东西。>
与其使用Docker,不如使用虚拟机系统或您喜欢的云提供商,运行安装程序,并创建三个系统级映像,稍后再部署,可能会更好。如果真的需要Docker,那么与供应商合作将是最好的方法。