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

时间:2018-11-01 12:00:46

标签: docker websphere dockerfile centos7

我有一个包含三个服务器的应用程序,每个服务器上都有一个组件。

  • Server1 =组件A
  • Server2 =组件B
  • Server3 =组件C

在Server1上开始安装时,除了在Server1上安装组件A之外,它还会强制在Server2上安装组件B和在Server3上安装组件C。

如果我要在Server2上开始安装,它同样会在其他服务器上安装其他组件。

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

这是使经验不足的人“更轻松”的工作方式,但是很难进行容器化。供应商知道,也许将来会改变,但这就是现在。

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

  1. 在每台服务器上运行安装,然后以这种方式创建映像。这意味着在为每个组件构建映像时,我需要编排开始的新鲜 远程容器。
  2. 启动3个新鲜容器,在其中任何一个上运行安装,然后使用docker commit创建映像。可以,但是我不喜欢这样,因此无法整理所有容器步骤。
  3. 也许是多阶段Dockerfile?我对此不太确定。
  4. 还有什么?

在这里感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您无法控制此安装程序系统-它需要三台主机,并在安装过程中与其他两台主机建立远程连接-那么很难将其变成Docker映像,应用程序供应商将可以为您提供更好的位置。

如果您知道仅安装 将软件安装到特定位置,则原则上您可以运行一次安装,在这三个系统中的每个系统上制作/opt/theapp的tar文件,然后编写将tar文件内容ADD {{1}}到三个映像中的每个映像的最少的Dockerfile。尽管如此,即使如此,您仍然希望安装程序为您做一些配置(例如,似乎三个系统的主机名),并且您必须将其重新创建为启动时入口点脚本或类似的东西。

与其使用Docker,不如使用虚拟机系统或您喜欢的云提供商,运行安装程序,并创建三个系统级映像,稍后再部署,可能会更好。如果真的需要Docker,那么与供应商合作将是最好的方法。