3

我在专用服务器上使用 jenkins 2。我的构建是一个多分支管道,这个构建的第一步是docker-compose up -d为了运行数据库(redis 和 mongo)并针对它们运行测试。

一切正常,直到您同时在不同的分支上进行 2 次提交;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

我的构建是用 a 完成的Jenkinsfile,我读过有一种方法可以在容器内运行构建

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

1 回答 1

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 网络端口,则不需要。

于 2016-08-10T15:36:12.993 回答