NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# 使用Jenkins实现自动化部署 ## Jenkins的安装及配置 ~~~shell JDK1.8 maven3.8.6 NodeJS v16.15.0 + ~~~ ### Docker环境下的安装 ##### 下载Jenkins的Docker镜像: ~~~shell docker pull jenkins/jenkins:lts ~~~ ##### 在Docker容器中运行Jenkins: ~~~shell docker run -p 8080:8080 -p 50000:5000 --name jenkins \ -u root \ -v /data/jenkins_home:/var/jenkins_home \ --restart=always \ -d jenkins/jenkins:lts ~~~ ### Jenkins的配置 运行成功后访问该地址登录Jenkins,第一次登录需要输入管理员密码:[http://192.168.0.132:8080/](http://192.168.0.132:8080/) ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_7a055e5404ed4ff6ce49f4782b6da098_r.png "null") 使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码: ~~~shell docker logs jenkins ~~~ 从日志中获取管理员密码: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_0fe86fe74aa935c94514f3337bd59cb8_r.png "null") 选择安装插件方式,这里我们直接安装推荐的插件: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_9607d72211565986800de113608afdb7_r.png "null") 进入插件安装界面,联网等待插件安装: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_45f445f09d7d6b409e2e45bba99e5166_r.png "null") 安装完成后,创建管理员账号: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_7703855d18b03ae689f69b1f5169e16c_r.png "null") 进行实例配置,配置Jenkins的URL: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_7ce59e6155e524baea8b1e13ba43c2a1_r.png "null") 点击系统管理->插件管理,进行一些自定义的插件安装: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_3075c0b3ca25aa6898d3837edd9e269b_r.png "null") 确保以下插件被正确安装: * 根据角色管理权限的插件:Role-based Authorization Strategy * 远程使用ssh的插件:SSH plugin 通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_80c36273e4ccc960085c9117f857cbae_r.png "null") 新增maven的安装配置: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_84dda9666dab29da4ad086a7bb3510fd_r.png "null") 在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_2d4f2c73e6356e9da0f0390daf89066b_r.png "null") ## 打包部署SpringBoot应用 #### 将代码上传到Git仓库 有一点需要注意,要将pom.xml中的dockerHost地址改成你自己的Docker镜像仓库地址: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_d6bfc2d7fc2444c6556f3c415141d6bd_r.png "null") #### 执行脚本准备 将\\document\\sh\\下的脚本文件上传到服务器/data/sh目录下。 给.sh脚本添加可执行权限: ~~~shell cd /data/sh chmod +x ./*.sh ~~~ windows下的.sh脚本上传到linux上使用,需要修改文件格式,否则会因为有特殊格式存在而无法执行: ~~~shell #使用vim编辑器来修改 vi *.sh # 查看文件格式,windows上传上来的默认为dos :set ff #修改文件格式为unix :set ff=unix #保存并退出 :wq ~~~ 执行.sh脚本,测试使用,可以不执行: ~~~shell ./mall-account.sh ~~~ ## 在Jenkins中创建执行任务 #### 首先我们需要新建一个任务: 添加代码管理仓库: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_f8d4401c205d01331be44fe99e91307c_r.png "null") 添加自动打包: ~~~shell clean package -P prod ~~~ ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_92301c83d7d1b0acfb260f9e01d24238_r.png "null") 打包之后执行归档文件,放到同一个文件夹下方便下载。 ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_c98fa4db26b2f88fcf80951c27ab1cc5_r.png "null") #### 单个服务打包: 唯一不同的地方,先下载依赖:注意看截图。 ~~~shell clean install -pl mall-common -am clean package -P prod ~~~ ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_4fb90be3206ca0427b0325417f67d4b6_r.png "null") 执行自动打包:Build Now ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_de4466cabb87004c8a4445648b00c842_r.png "null") 打包完成到工作空间–targetAll中下载打包完成的jar包。 ## 打包web前端 Vue前端应用的打包需要依赖NodeJS插件,所以我们先安装并配置该插件,然后创建任务来打包部署。 ### 安装NodeJS插件 在系统设置->插件管理中选择安装插件; 搜索NodeJS插件并进行安装; ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_a7ede1d2d1d4b616ceaa36ed0f9f6549_r.png "null") ### 配置NodeJS插件 在系统设置->全局工具配置中进行插件配置; 选择新增NodeJS,配置好版本号以后,点击保存即可完成设置; ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_b0ede00c0ea3d68a882d02a8c84bbd22_r.png "null") ### 打包admin前端代码 任务执行流程如下: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_3a378818341651d506e9c77d41e3ac74_r.png "null") #### 首先我们需要新建一个任务: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_88b6c82ddaeb958c15d1689ffe7dd66d_r.png "null") 添加代码管理仓库: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_f8d4401c205d01331be44fe99e91307c_r.png "null") 在构建环境中把我们的node环境添加进去: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_5ca1666a289bf00b417784e002ef31bd_r.png "null") 添加一个执行shell的构建,用于将我们的前端代码进行编译打包: ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_ec4e739d1a445f9b6f7aae767b6b345a_r.png "null") 构建脚本如下: ~~~shell # 解决存放在Github上的sass无法下载的问题 SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass # 将镜像源替换为国内的加速访问 npm config set registry https://mirrors.tencent.com/npm/ # 安装项目依赖 cnpm install # 项目打包 cnpm run build ~~~ 点击保存后,直接在任务列表中点击运行即可完成自动化打包。 打包成功之后可以在工作空间下载打包好的代码:工作空间–》admin ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_483f46b37a8dadd138337a97cc8519da_r.png "null") ![](https://docs.suteshop.com/uploads/shopsuite-java/images/m_e5c0039cb9c69bd3c644fb15b270910d_r.png "null") ### 打包PC前端代码 同打包admin前端代码一样的步骤,只需要更换代码库即可。