将服务器端产品自动打包为Docker和OVA映像

时间:2015-10-23 21:38:07

标签: virtual-machine containers packer


我们开发服务器端解决方案并简化其部署,我们希望为我们的客户提供两种选择:
1. Docker图像
2. OVA格式的VM映像

图像应由我们的构建机器自动创建 截至今天,我们为此目的使用包装机。首先,我们创建docker镜像,然后在预配置的虚拟机映像中更新该映像(使用' virtualbox-ovf' builder)。这很好用,但这个解决方案存在一些问题。
首先,我们的虚拟机包括docker框架和两个操作系统(主机和docker' s),因此我们的VM映像比docker大两倍。其次,要将我们的解决方案基于另一个Linux发行版,我们应该手动配置新的VM机器。
我们正在寻找Dockerfile'风格的解决方案,自动创建和配置VM,然后以OVA格式导出。 '的virtualbox异'构建器是显而易见的方法,但构建过程会更长。

1 个答案:

答案 0 :(得分:0)

如果您愿意使用Debian作为基本操作系统,那么您可以查看TurnKey LinuxTKLDev。这可能是最初的一个学习曲线,但它是一个非常酷的IMO(虽然我非常偏见 - 见下面的免责声明)。 TKLDev将为您构建一个TurnKey(基于Debian)ISO,并将您的软件安装在顶部。然后使用Buildtasks,您可以将ISO转换为OVA,VMDK,LXC,Docker,OpenStack等......

不幸的是,Buildtasks没有很好的文档记录,但很重要的是在bash中,所以如果你使用Linux命令行很方便,你可以解决它。否则请在TurnKey forums上询问。

最初的开发(从Packer到TKLDev)可能需要一段时间,但是一旦繁重的工作完成,ISO(在现代多核CPU PC上的客户VM中)的创建大约需要10-15分钟, OVA可能是另一个〜5; Docker另有~5。

如果你想让它自动构建,那么每次提交回购时,你都可以使用一个钩子来触发一个新的TKLDev构建(包括buildtasks图像创建)。我知道git支持这个,但我认为其他版本控制系统允许类似的东西。

此外,如果您正在制作的设备是开源的,那么它可能会被添加到TurnKey Linux库中吗?

免责声明:我使用TurnKey Linux。 :)

FWIW这实际上是我们用来创建人类已知的大多数虚拟化格式的设备库的过程!