我有一个应用程序,它包括三个服务器,每个服务器上都有一个组件。
在Server1上启动安装时,除了在Server1上安装组件A之外,还强制在Server2上安装组件B,在Server3上安装组件C。
如果我要在Server2上启动安装,它同样会在相应的服务器上安装其他组件。
这也意味着必须运行“远程”服务器,因为它通过SSH连接到这些远程服务器,以复制文件并安装它们。哦,如果它检测到已经存在,它也拒绝在节点上安装应用程序。
这正是它的工作方式,使它“更容易”,对缺乏经验的人,但更难集装箱。供应商知道,也许将来会有所改变,但这就是目前的情况。
我正在努力制定策略,为每个组件创建单独的映像。几点想法:
感谢你在这里提供帮助。
发布于 2018-11-01 15:40:30
如果您无法控制此安装程序系统--它需要三台主机,并在安装过程中与其他两台主机进行远程连接--那么很难将其转换为Docker映像,应用程序供应商将更好地为您提供此功能。
如果您知道安装只将软件安装到特定的位置,那么原则上您可以运行安装一次,在三个系统中的每个系统上创建/opt/theapp
的tar文件,然后编写最小的Dockerfile,将tar文件内容ADD
到三个映像中的每一个。尽管如此,您仍然希望安装程序为您做一些配置(例如,这三个系统的主机名似乎很可能),并且您必须将其重新创建为启动时入口点脚本或类似的东西。
与其使用Docker,不如使用虚拟机系统或您最喜欢的云提供程序,运行安装程序,并创建三个系统级别的映像,您以后可以重新部署。如果Docker确实是一个要求,那么与供应商合作将是最好的方法。
https://stackoverflow.com/questions/53100883
复制相似问题