我在专用服务器上使用jenkins 2。我的构建是一个多分支管道,这个构建的第一步是执行docker-compose up -d
以运行数据库(redis和mongo)并对它们运行测试。
一切正常,直到你在同一时间在不同的分支上有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
我的构建是用Jenkinsfile
完成的,我已经读过有一种方法可以在容器中运行构建
docker.image("some image").inside{
// build
}
答案 0 :(得分:0)
我建议你省略端口暴露。或者您需要将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
如果你的应用程序运行到docker网络端口暴露不需要。