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

这篇具有很好参考价值的文章主要介绍了nodejs前端项目的CI/CD实现(二)jenkins的容器化部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

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

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

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

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

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

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

二、踩过的坑

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

文档只有机器的密码,以及jenkins的admin超管账户的密码。
并没有交待Jenkins容器是怎么起来的,而所谓交接也中断不知多久,没人知道此时。。

2、思维定势

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

三、分析已部署的容器

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

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

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

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

nodejs前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器
从下面详情,也可以看到镜像image名称,使用的就是官方镜像。
nodejs前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器
从下面的环境变量,可以看到,jenkins使用的版本是2.323。在制作自定义镜像的时候,这个信息可以帮助到我们该选择哪个版本。
nodejs前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器

四、容器化部署

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

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前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器
我试着做了,但总会缺这缺那的,很难真正跑起来。

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

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

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

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

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

nodejs前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器

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

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

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

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

nodejs前端项目的CI/CD实现(二)jenkins的容器化部署,前端,ci/cd,jenkins,运维,云原生,node.js,容器

限于篇幅, 对jenkins的容器化部署就说到这, 见下文。。。文章来源地址https://www.toymoban.com/news/detail-807255.html

到了这里,关于nodejs前端项目的CI/CD实现(二)jenkins的容器化部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • gitlab ci/cd+harbor+k8s实现一键部署(python项目)

    使用 kaniko 构建 Docker 镜像 如果仓库使用http

    2024年02月13日
    浏览(65)
  • 基于Jenkins实现的CI/CD方案

    最近基于Jenkins的基座,搭建了一套适用于我们项目小组的持续集成环境。现在把流程整理分享出来,希望可以给大家提供一些帮助和思路。 组件名称 组件版本 作用 Harbor 2.7.3 镜像仓库 Jenkins 2.319.2 持续集成工具 Pipeline 2.6 Jenkins插件,编排流水线脚本 SSH Pipeline Steps 2.0.0 Jenki

    2024年02月22日
    浏览(45)
  • 前端自动化部署,Devops,CI/CD

    提到 Jenkins,想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。 DevOps  Development  和  Operations  的组合,是一种方法论,并不特指某种技术或者工具。DevOps 是一种重视  Dev  开发人员和  Ops  运维人员之间沟通、协作的流程。通过自动化的软件交付,使软件的构建

    2024年02月10日
    浏览(64)
  • 【前端自动化部署】,Devops,CI/CD

    提到 Jenkins ,想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。 DevOps Development 和 Operations 的组合,是一种方法论,并不特指某种技术或者工具。 DevOps 是一种重视 Dev 开发人员和 Ops 运维人员之间沟通、协作的流程。通过自动化的软件交付,使软件的构建,测试,发

    2024年02月10日
    浏览(45)
  • gitlab+jenkins+harbor实现CI/CD(2)——初级

    git安装 jenkins主机上安装docker-ce 配置仓库证书 测试 创建项目 创建一个freestyle project 在jenkins主机获取密钥 在gitlab上传公钥 在jenkins上传私钥 输入测试命令后保存 点击立即构建 查看控制台输出 工作路径 构建触发器,定时触发 安装插件 gitlab和 Cloudbee docker 配置gitlab 在网络设

    2024年02月09日
    浏览(52)
  • 使用gitlab 自带 CI/CD 构建部署项目

    这里我用的是桥接模式 桥接模式方便局域网内的小伙伴一起使用 如果没有这个打算可跳过这步 编辑网络 vi /etc/sysconfig/network-scripts/ifcfg-你的网络名称 修改如下内容 这里我有句话要讲, 这些信息配置完成后出现\\\"网络不可达\\\" 需要把 BOOTPROTO 改为 dhcp 详情可参考 处理网络不可达

    2024年02月12日
    浏览(63)
  • 在服务器部署Next.js、Node.js项目,并实现自动部署(伪CI\CD)超详细

    目录 一、引言 二、配置服务器 1. 远程连接服务器 · 用服务商提供的远程连接 · 用MotaXterm来远程连接 ​编辑​编辑​编辑  2. 登录实例 · 如何获取账号和密码 · 服务商远程连接方式:  · MotaXterm连接方式 三、项目准备与测试 1. 安装nodejs · 进入安装目录 · 下载 · 解压 ·

    2024年02月05日
    浏览(96)
  • Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

    Jenkins是一个流行的开源持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)工具,它通过自动化构建、测试和部署过程,帮助开发团队更高效地交付软件。Jenkins的分布式实现允许将任务分散到多个计算机上执行,从而提高系统的弹性和可扩展性。本文将深入

    2024年02月01日
    浏览(63)
  • [Docker实现测试部署CI/CD----自由风格的CI操作[最终架构](5)]

            前面的架构存在的问题是, 若有多个目标服务器都需要使用该镜像,那么每个目标服务 器都需要在本地构建镜像,形成系统资源浪费。 若能够在 Jenkins 中将 镜像构建好并推送到 Harbor 镜像中心 ,那么无论有多少目标服务器需要该镜像,都只需要从 Harbor 拉取即可

    2024年02月14日
    浏览(54)
  • Jenkins CI/CD

    1、 Jenkins CI/CD 流程图 说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然后通过Jenkins 如Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程。那它有哪些问题呢? 如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包