上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

nodejs前端项目的CICD实现(二)jenkins的容器化部署

guduadmin221月前

一、背景

docker安装jenkins,可能你会反问,这太简单了,有什么好讲的。

我最近就接手了一个打包项目,它是一个nodejs的前端项目,jenkins已在容器里部署且运行OK。

但是,前端组很追求新技术,不断地升级Nodejs的版本,之前是14,现在需要升级到16。

也就是说,原本运行顺畅的打包不灵了,必须得升级Nodejs才行。

我要看下文档,得知道jenkins容器的运行命令,才好去修改并重启容器。

这是我的第一反应,可也正是这个思维,导致走了不少弯路。

二、踩过的坑

1、文档少,交接中断许久

文档只有机器的密码,以及jenkins的admin超管账户的密码。

并没有交待Jenkins容器是怎么起来的,而所谓交接也中断不知多久,没人知道此时。。

2、思维定势

我的这个固定思维,导致我走了不少弯路。也正因为此,我才想把这期间遇到的问题,梳理出来,希望能够帮助到有需要的同学。

三、分析已部署的容器

主要需要知道以下信息,对于Jenkins容器来说:

  • 镜像image
  • volume
  • 端口映射
  • 环境变量

    对于本文的情况来说,镜像image和端口映射是很容易看到,最重要的信息莫过于volume持久化。

    当然你可以借助于docker inscept命令,我这里是使用portainer界面查看。

    nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第1张

    从下面详情,也可以看到镜像image名称,使用的就是官方镜像。

    nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第2张

    从下面的环境变量,可以看到,jenkins使用的版本是2.323。在制作自定义镜像的时候,这个信息可以帮助到我们该选择哪个版本。

    nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第3张

    四、容器化部署

    从上文,我们不难倒退出目前在运行中的容器,运行脚本大致是:

    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、安装方式一(不推荐)

      nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第4张

      我试着做了,但总会缺这缺那的,很难真正跑起来。

      因为宿主机是centos,而jenkins容器是ubuntu操作系统。

      想要在ubuntu系统里,去执行一个centos上的可执行文件,何其难也~~

      因为可执行文件还依赖操作系统底层的函数及文件。

      可以说,不仅不推荐,似乎本文也行不通。。

      2、遗漏的方案(不科学,不推荐)

      nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第5张

      这种方式,就是拿容器当虚拟机使用,丢失了容器化的内涵和意义。

      缺什么软件,你就去容器里安装,问题是简单地解决了,留给运维一堆坑。

      后面接手的人不禁反问一句:如果虚拟机那么好使, 还容器化干嘛。绕来绕去,不知不觉中又绕回去了。

      3、推荐的方案(也是下文要进一步描述的方案)

      nodejs前端项目的CICD实现(二)jenkins的容器化部署,在这里插入图片描述,第6张

      限于篇幅, 对jenkins的容器化部署就说到这, 见下文。。。

网友评论

搜索
最新文章
热门文章
热门标签
 
 怀孕梦到生女儿就是女儿吗  已婚女人梦见两个小女孩  梦见大楼倒塌自己没事是什么征兆