公司网站app怎么做,备案期间网站,wordpress安全监测,最新军事新闻最新消息视频一、背景
docker安装jenkins#xff0c;可能你会反问#xff0c;这太简单了#xff0c;有什么好讲的。
我最近就接手了一个打包项目#xff0c;它是一个nodejs的前端项目#xff0c;jenkins已在容器里部署且运行OK。
但是#xff0c;前端组很追求新技术#xff0c;不…一、背景
docker安装jenkins可能你会反问这太简单了有什么好讲的。
我最近就接手了一个打包项目它是一个nodejs的前端项目jenkins已在容器里部署且运行OK。
但是前端组很追求新技术不断地升级Nodejs的版本之前是14现在需要升级到16。
也就是说原本运行顺畅的打包不灵了必须得升级Nodejs才行。
我要看下文档得知道jenkins容器的运行命令才好去修改并重启容器。
这是我的第一反应可也正是这个思维导致走了不少弯路。
二、踩过的坑
1、文档少交接中断许久
文档只有机器的密码以及jenkins的admin超管账户的密码。 并没有交待Jenkins容器是怎么起来的而所谓交接也中断不知多久没人知道此时。。
2、思维定势
我的这个固定思维导致我走了不少弯路。也正因为此我才想把这期间遇到的问题梳理出来希望能够帮助到有需要的同学。
三、分析已部署的容器
主要需要知道以下信息对于Jenkins容器来说
镜像imagevolume端口映射环境变量
对于本文的情况来说镜像image和端口映射是很容易看到最重要的信息莫过于volume持久化。
当然你可以借助于docker inscept命令我这里是使用portainer界面查看。 从下面详情也可以看到镜像image名称使用的就是官方镜像。 从下面的环境变量可以看到jenkins使用的版本是2.323。在制作自定义镜像的时候这个信息可以帮助到我们该选择哪个版本。
四、容器化部署
从上文我们不难倒退出目前在运行中的容器运行脚本大致是
docker run -d -uroot \
-p 8080:8080 \
-p 50000:50000 \
--name jenkins \
-v /opt/jenkins_home:/var/jenkins_home \
jenkins/jenkins:2.323可是问题来了jenkins job打包需要的那些命令和工具呢 他们在哪
也分为几种可能但都没找到。
jenkins plugin插件系统管理–》全局工具设置宿主机和容器做持久化映射容器里安装遗漏了这点后果很严重
前面三处都找了也没找到可偏偏遗漏了最后一处。。。因为这种方式我自己在操作中比较忌讳。
容器一定被删除后安装的命令和工具就都丢失了并且对于运维来说也是透明的。
就是说别人并不知道你对容器具体有做什么改进一头雾水。
1、安装方式一不推荐 我试着做了但总会缺这缺那的很难真正跑起来。
因为宿主机是centos而jenkins容器是ubuntu操作系统。
想要在ubuntu系统里去执行一个centos上的可执行文件何其难也~~
因为可执行文件还依赖操作系统底层的函数及文件。
可以说不仅不推荐似乎本文也行不通。。
2、遗漏的方案不科学不推荐 这种方式就是拿容器当虚拟机使用丢失了容器化的内涵和意义。
缺什么软件你就去容器里安装问题是简单地解决了留给运维一堆坑。
后面接手的人不禁反问一句如果虚拟机那么好使 还容器化干嘛。绕来绕去不知不觉中又绕回去了。
3、推荐的方案也是下文要进一步描述的方案 限于篇幅 对jenkins的容器化部署就说到这 见下文。。。