使用Docker和Jenkins管理测试资源(数据库、弹性搜索、redis等)



我们需要使用Jenkins来测试每个需要的一些web应用程序:

  • 数据库(在我们的案例中是postgres)
  • 搜索服务(在我们的案例中是ElasticSearch,但只是有时)
  • 缓存服务器,如redis

到目前为止,我们刚刚在Jenkins master上运行了这些服务,但当我们想要升级Postgres、ES或Redis版本时,这会导致问题。并非所有应用程序都可以同步移动,我们希望在承诺在生产中移动应用程序之前,先在新版本上运行测试。

我们想做的是在每个作业运行的基础上提供这些服务,每个服务都在自己的容器中运行。

编排这些容器的最佳方式是什么?

  • 无论作业是否成功,您如何启动这些辅助容器并将其拆除?

  • 如何防止一个web应用程序的作业运行中的数据库和另一个web程序的作业中的数据库之间的端口冲突?

检查docker-compose并为您的测试编写一个docker-compose文件。Docker(专用网络)的最新网络功能将帮助您隔离并行运行的构建。

然而,开始学习docker compose,就好像你同时只有一个构建一样。如果对此有信心,请进一步查找有关网络的高级docker文档。

最新更新