使用Docker和Jenkinspipe理资源(数据库,elasticsearch,redis等)

我们需要使用Jenkins来testing每个需要的Web应用程序:

  • 一个数据库(postgres在我们的情况)
  • 一个search服务(ElasticSearch在我们的例子中,但有时只是)
  • 一个caching服务器,比如redis

到目前为止,我们刚刚在Jenkins主服务器上运行了这些服务,但是当我们想要升级Postgres,ES或Redis版本时,这会导致问题。 并不是所有的应用程序都可以在locking步骤中移动,并且我们希望在提交移动应用程序之前在新版本上运行testing。

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

什么是编排这些容器的最好方法?

  • 不pipe工作是否成功,你如何启动这些辅助容器并将其拆除?

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

检查docker构成,并为您的testing写一个docker构成文件。 Docker(私有networking)的最新networkingfunction将帮助您隔离并行运行的构build。

然而,开始学习docker-compose就好像你只有一个版本在同一时间。 当对此信心满满的时候,请进一步了解networking的高级Docker文档。