首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每种模块类型的jenkins从属容器镜像,还是可以构建任何东西的单一集中式容器镜像?

每种模块类型的jenkins从属容器镜像,还是可以构建任何东西的单一集中式容器镜像?
EN

Stack Overflow用户
提问于 2017-01-18 17:37:56
回答 1查看 222关注 0票数 0

我有多个项目需要作为同一CI流的一部分来构建--一些是在java中,一些是nodejs,一些是c++等等。

我的问题是-我应该为每个模块类型创建一个jenkins从属容器镜像,即一个能够构建java的专用从属镜像,以及一个专用容器来构建nodejs,并安装节点等,或者创建一个可以构建任何东西的容器- jave、node等。

如果我从vm的角度来看,我很可能会使用相同的vm来构建任何东西--这意味着一个集中的构建从站。但我不喜欢这种依赖性,或者如果明天我需要更新java版本并保留旧版本,我可能会创建巨大的图像,它们之间的差异很小。

WDYT?

EN

回答 1

Stack Overflow用户

发布于 2017-01-18 19:29:23

我个人倾向于使用容器-每个模块-类型,原因如下:

  1. 我喜欢让我的容器尽可能的集中。他们应该做好一件事,例如,构建Java应用程序,构建节点applications
  2. Docker使构建容器镜像变得极其简单
  3. 停止和启动Containers非常容易

我可能会用Git创建一个单独的项目,它的结构是这样的:

代码语言:javascript
复制
- /slaves
- /slaves/java
- /slaves/java/Dockerfile
- /slaves/node
- /slaves/node/Dockerfile
...

我有一个Dockerfile,它为给定的“模块类型”创建和构建从模块的容器镜像。我会通过拉取请求对这个项目进行更改,每次拉取请求合并到master中时,将生成的图像推送到DockerHub作为新版本,作为我的Jenkins slaves使用。

我会让我的Jenkins实例中运行的另一个项目来处理上面的事情,这个项目只是简单地监视我的Git存储库。当对Git存储库进行更改时,它只会按顺序运行构建命令,然后将新镜像推送到DockerHub:

代码语言:javascript
复制
docker build -f slaves/java/Dockerfile -t my-company/java-slave:$BUILD_NUMBER -t my-company/java-slave:latest
docker build -f slaves/node/Dockerfile -t my-company/node-slave:$BUILD_NUMBER -t my-company/node-slave:latest

docker push my-company/java-slave:$BUILD_NUMBER
docker push my-company/java-slave:latest
docker push my-company/node-slave:$BUILD_NUMBER
docker push my-company/node-slave:latest

然后,当您准备好时,可以将Jenkins配置更新为新的从属映像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41715859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档