2016-04-29 69 views
1
测试管理资源(数据库,elasticsearch,Redis的,等等)

我们需要使用詹金斯测试一些网页应用程序,每个人都需要:使用泊坞窗和詹金斯

  • 数据库(在我们的例子Postgres的)
  • 搜索服务(ElasticSearch在我们的案例,但只是偶尔)
  • 缓存服务器,如Redis的

到目前为止,我们刚刚对詹金斯主系统上运行这些服务,但是这会导致问题当我们想要提高rade Postgres,ES或Redis版本。并非所有应用程序都可以锁定步骤移动,并且我们希望在提交移动应用程序之前在新版本上运行测试。

我们想要做的是有规定每个作业运行的基础上,这些服务在其自己的容器每一个运行。

什么是协调这些容器的最佳方式?

  • 无论工作是否成功,您如何启动这些辅助容器并将它们撕下来?

  • 如何防止之间,说的端口冲突,在一个Web应用程序,并在工作中为其他网络应用的数据库作业的运行数据库?

回答

2

检查docker-compose并为您的测试写一个docker-compose文件。 泊坞窗的latest network features(专用网络)将帮助你隔离构建并行运行。

然而,开始学习搬运工,撰写,如果你只在同一时间有一个版本。当对此信心满满时,请进一步了解有关网络的高级Docker文档。

+0

这当然是“正确”的答案,但是我们被困在Docker 1.8中,并且您提到的功能需要更新版本的docker api才能工作。 什么其他选择? –

+2

网络的“祖先”是'链接'。您应该能够将所有容器“链接”为一项作业。为了能够并行执行多个作业,我会努力给出链接的动态名称(例如:脚本生成具有唯一链接名称的docker-compose yml文件)。在您的机器上等待Docker升级时,这将是一个窍门。 –

+0

如果只有Red Hat和Docker Inc可以再次成为朋友...... –