如何使用docker隔离jenkins中的构build

我在专用服务器上使用jenkins 2。 我的构build是一个多分支pipe道,这个构build的第一步是做一个docker-compose up -d为了运行数据库(redis和mongo)并运行testing。

一切正常,直到你有两个同时在不同的分支提交; 2版本之一不能启动容器,因为该端口当然已经被占用。

我希望能够在2个不同的分支上运行2个版本:我如何实现这个目标?

docker-compose.yml文件如下所示:

 mongo: image: mongo:2.6.12 ports: - 27017:27017 mem_limit: 100m redis: image: redis:3.0.7-alpine ports: - 6379:6379 mem_limit: 60m 

我的构build完成与Jenkinsfile ,我读了有一种方法来运行一个容器内的构build

 docker.image("some image").inside{ // build } 

我会build议你省略端口暴露。 或者您需要将Docker端口暴露给随机的Docker端口

 mongo: image: mongo:2.6.12 ports: - 27017 mem_limit: 100m redis: image: redis:3.0.7-alpine ports: - 6379 mem_limit: 60m 

如果您的应用程序运行到dockernetworking端口暴露不需要。