Jenkins自动化发布
前言
记录一下最近配置Jenkins的发布流程的部分步骤
整体流程:使用 Jenkins 进行线上发布并打包docker镜像上传至私有docker镜像仓库、并配置 docker login 线上推送/拉取镜像发布运行。
安装docker 拉取 Jenkins 镜像就不再描述,有很多现成的文章。
插件集成
配置并安装maven、jdk、git、nodeJs、docker等基本组件

安装对应各种支持插件、如gitlab。

nodejs 插件前端发布使用

连接远程服务端并执行命令插件

创建流水线任务
创建任务、并配置任务各个环节执行命令与使用组件
首先配置拉取git库地址与项目代码
后续替换源码中的环境值、如dev环境替换为pro nacos 连接地址与命令空间等

我使用的是最简单的sed -i 命令,该命令可以匹配正则表达式从而替换文本字符串。
资源打包与推送
使用maven 进行jdk build,构建项目jar包

打包完成之后使用shell命令把target包下的jar包cp到对应docker-compose文件下,此处需要提前写好docker-compose文件与对应服务的docker-file文件。
执行docker-compose进行批量build镜像
build完成之后执行docker tag 对镜像进行版本打标
在镜像打标完成后docker push上传到镜像仓库
远程连接目标服务器或者k8s master 节点 执行job命令并给予镜像下载地址。
历史资源删除
打包之后上传到私服之后别忘记清空本地工作空间中无用的资源,以及docker镜像等资源,避免多次发布后出现资源占用过高问题。这样就可以形成一个闭环操作,可以多次发布项目版本。