前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >15min运维之Docker运行Jenkins从开始到放弃

15min运维之Docker运行Jenkins从开始到放弃

原创
作者头像
码代码的陈同学
修改2018-07-10 23:36:55
1.1K0
修改2018-07-10 23:36:55
举报
文章被收录于专栏:码代码的陈同学

欢迎访问 陈同学博客原文

某新环境需要Jenkins,准备用docker "一条run命令搞定"。其他工具用docker屡试不爽,这次Jenkins是从开始到放弃。

Jenkins作为CI工具,构建过程需依赖对应的构建环境,如:maven、java、npm、docker等。如今是docker盛行的年代,什么都可以打成镜像,docker倒是成了标配。

简单环境示例

Jenkins dockerhub 官方镜像

假设只需要准备maven和java环境,只要把宿主机的maven和jdk挂载到容器即可,再给容器中配置下PATH变量

代码语言:txt
复制
docker run -d --restart=always --name jenkins \
-p 8085:8080 \
-p 50000:50000 \
-v /usr/local/custom:/lib/custom \
-v /jenkins/data:/var/jenkins_home \
--env-file=/jenkins/env \
jenkins

上述命令中,/usr/local/custom 存放了 apache-maven-3.3.9jdk1.8.0_121/jenkins/data 用于存储jenkins的数据。

/jenkins/env 存储了环境变量,如下:

代码语言:txt
复制
JAVA_HOME=/lib/custom/jdk1.8.0_121
M2_HOME=/lib/custom/apache-maven-3.3.9
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/lib/custom/jdk1.8.0_121/bin:/lib/custom/apache-maven-3.3.9/bin

这样一个简单的CI环境就OK了。

Docker环境示例

Using Docker-in-Docker for your CI or testing environment? Think twice The simple way to run Docker-in-Docker for CI 在(Docker里的)Jenkins里运行Docker

当Jenkins本身就是容器时,在容器里面构建镜像就有一丢丢麻烦了,有2个方案:

  • DinD(Docker-in-Docker):基于Jenkins官方镜像直接安装docker做一个新镜像,形成一个完整的隔离环境。
  • DooD(Docker-outside-of-Docker):将宿主机的docker sock映射到Jenkins容器,直接用宿主机的docker,相当于把一切又委托给了宿主机。

我选了DooD,踩了几个坑,尽非功夫,直接放弃了。有兴趣的伙伴可以参考上面的三篇文章,描述的非常清楚。

小结

无论是DinD,还是DooD,目的都是为了CI。DooD其实没啥意义,DinD又有点作,直接在宿主机安装不就得了。

Jenkins作为CI工具,可以非常稳定的运行在宿主机上,也不存在迁移的问题(当然,如果主机配置低,后续JOB又多,还是得迁移或主机升配),直接部署在主机上是最优选择。

因此,是否以Docker来运行某个产品,得根据具体情况来确定。

本篇纯属技术小伙的好奇心驱使。


欢迎关注陈同学的公众号,一起学习,一起成长

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单环境示例
  • Docker环境示例
  • 小结
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档