我正在开发一个企业产品,主要有3个基于swing的客户端,DB,Server(现在我们可以忽略数据库部分)。作为企业产品,客户端和服务器都带有自己的安装程序(它不像配置apache或JBOSS并在其上部署war)。
我们已配置CI以生成可安装的客户端和服务器的夜间操作系统特定版本。
因此我们必须定期在特定操作系统上测试这些构建,这需要在Y OS上的Y OS或X版本服务器上安装和创建具有X版客户端的系统的大量手动过程。这变得非常繁琐,因为我们都在窗户上做下一步 - >下一个 - >真的很糟糕(我创建了一个脚本,通过shell安装我们的产品,但它仍然是我认为可以自动化的步骤,但不是如何)。而且我们也需要隔离。
现在我在想如何自动化创建这些测试机器的过程。我刚刚开始探索Vagrant / Docker,如果它们对我有帮助(并且根据他们的概念,但仍然不了解Puppet / Chef)我很困惑我应采用哪种策略
注意:我必须创建VM,因为我们在window.n通过vagrant或通过boot2docker
所以我的问题是
答案 0 :(得分:1)
如何创建安装了客户端的容器/泊坞窗图像
您必须将所有操作都放入Dockerfile,以便启动和配置客户端。
为了做到这一点,你可以创建一个容器,做所有的事情,然后docker commit
或更好的方法是将所有必需的命令放在Dockerfile中,这样当你做一些修改,您可以使用基本docker build -t myclient_version_n .
检查文档
以及如何自动构建
如何创建Dockerfile
并查看docker Hub中容器化应用程序的现有Dockerfiles
答案 1 :(得分:1)
Vagrant的替代方案是使用Docker Machine。您也可以像@ m1keil一样提及云提供商。 Machine可以在许多提供商上配置Docker主机,并且可以随时使用。
披露:我在Docker工作并且是Machine的维护者:)
答案 2 :(得分:0)
答案 3 :(得分:0)
我非常喜欢Docker通过Dockerfile轻松使用。 Dockerfile让您可以非常轻松地更新和控制docker镜像中的软件,然后您可以在CI /测试环境中进行配置。 Docker现在具有本机Windows支持,因此这不应该阻止您使用它:https://docs.docker.com/docker-for-windows/此外,我喜欢您可以设置非常轻量级的最小机器,只需要您的构建和运行时依赖性项目,并在hub.docker.com上免费存储它们。取决于构建和构建所需的时间。安装某些依赖项,这可以加快您的测试速度,因为您只需下载已安装和构建的所有内容的docker镜像,然后构建并测试您的实际项目。
我将此用于https://github.com/sourceryinstitute/opencoarrays,这是GCC官方实施的Coarray Fortran。我有一个小项目https://github.com/zbeekman/nightly-docker-rebuild,可让您在两分钟内在hub.docker.com上设置夜间docker镜像。我使用它来触发https://github.com/zbeekman/nightly-gcc-trunk-docker-image的构建,因为我无法在没有构建超时的情况下从Travis-CI.org上的源重建GCC。这样,我将GCC每晚构建委托给hub.docker.com,然后将docker pull
zbeekman/nightly-gcc-trunk-docker-image
委托给travis-ci实例,以针对最新的GCC主干测试OpenCoarrays。