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

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

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

简单环境示例

Jenkins dockerhub 官方镜像

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

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 存储了环境变量,如下:

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来运行某个产品,得根据具体情况来确定。

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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过Docker可以方便地运行Jenkins。下面是使用Docker运行Jenkins的步骤: 1. 首先,在你的机器上创建一个Jenkins工作目录,比如 `/home/jenkins`。 ``` mkdir /home/jenkins ``` 2. 接下来,拉取JenkinsDocker镜像。 ``` docker pull jenkins/jenkins:lts ``` 3. 确认Jenkins工作目录的归属ID。 ``` ls -nd /home/Jenkins ``` 4. 如果需要,为Jenkins工作目录赋予正确的权限。 ``` chown -R 1000:1000 /home/jenkins ``` 以上就是使用Docker运行Jenkins的基本步骤。通过这种方式,你可以轻松地将Jenkins部署到Docker容器中,实现服务的轻量化和资源管理。 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于Docker环境下的Jenkins搭建及使用](https://blog.csdn.net/wx17343624830/article/details/127737797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker搭建jenkins](https://blog.csdn.net/m0_46897923/article/details/120795576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值