Jpom简介

Jpom是一款简而轻的自动化部署工具,目前在Gitee上已有8.5k+star,它具有在线构建、自动部署、日常运维、项目监控等功能。

它能解决你日常开发中的这些痛点!

mall项目简介

由于我们之后要使用Jpom来实现mall项目的自动化部署,这里先简单介绍下mall项目,mall项目是一套基于 SpringBoot3 + Vue 的电商系统(Github标星60K),后端支持多模块和2024最新微服务架构,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!

项目演示:

安装

Jpom使用Docker来安装无疑是最方便的,这里我们采用此种方式来安装。

  • 首先通过如下命令下载Jpom的镜像;
 docker pull jpomdocker/jpom 
  • 下载完成后,使用如下命令启动jpom-server容器;
docker run -p 2122:2122 --name jpom-server \
-v /mydata/jpom-server/logs:/usr/local/jpom-server/logs \
-v /mydata/jpom-server/data:/usr/local/jpom-server/data \
-v /mydata/jpom-server/conf:/usr/local/jpom-server/conf \
-d jpomdocker/jpom
  • 容器启动成功后,Jpom将运行在2122端口上,第一次访问会要求我们超级管理员账户
  • 账户创建完成后就可以访问Jpom的控制台页面了。

自动化部署

接下来就以我的mall电商实战项目为例,来介绍下Jpom的自动化部署功能。

准备

  • 首先我们来了解下自动化部署的的流程从gitee仓库获取代码->使用maven打包项目->通过插件生成Docker镜像->通过ssh执行脚本运行容器
  • 我们需要从仓库信息中添加一个仓库
  • 由于我们会使用Docker环境来构建项目,我们需要在Docker管理中添加添加一个Docker环境,注意Docker环境需要开启远程API访问;
  • 然后分配工作空间为默认
  • 接下来在SSH管理中添加SSH配置,同理分配到默认工作空间后才可以使用;
  • 由于SSH没有配置授权目录是不能选择的,所以还得配置好授权目录/mydata

项目构建

  • 构建列表中新增一个容器构建,注意需要给Docker容器添加local标签;
  • 接下来配置好需要构建项目的仓库地址,这里使用了mall项目的仓库地址;
  • 接下来进行构建流程的配置,使用如下脚本进行mall-admin模块的构建,产物目录为/mall-admin/target/mall-admin-1.0-SNAPSHOT.jar
# 基础镜像,目前支持ubuntu-latest、ubuntu-git
runsOn: ubuntu-latest
# 指定使用Docker环境的标签
fromTag: local
# 指定构建的步骤,目前支持的uses插件有java、maven、node、go、python3、gradle
steps:
  - uses: java
    version: 8
  - uses: maven
    version: 3.8.8
  # 将容器中的maven仓库文件缓存到docker卷中
  - uses: cache
    path: /root/.m2
  # 只install mall-common,mall-mbg,mall-security三个模块
  - run: cd ${JPOM_WORKING_DIR} && mvn clean install -pl mall-common,mall-mbg,mall-security -am
  # 单独构建并打包mall-admin模块
  - run: cd ${JPOM_WORKING_DIR}/mall-admin/ && mvn clean package
  • 接下来进行发布操作的配置,配置为SSH,发布完成后执行/mydata/sh/mall-admin.sh脚本启动mall-admin容器;
  • mall项目的容器启动脚本在项目的document/sh目录下;
  • 项目构建配置好之后就可以点击构建按钮进行构建了,构建过程中会自动下载项目的依赖;
  • 构建完成后我们就可以访问到mall-admin服务的API文档了
  • 接下来我们来部署mall-portal模块,复制一个mall-admin模块的构建,修改下构建流程中的脚本;
  • 然后修改发布操作中的发布后命令即可,mall-search模块的构建配置也一样;
  • 后端服务部署完毕后,我们可以把mall项目的后台管理系统的前端运行起来看下效果;
  • 然后把前台商城系统的前端运行起来看下效果,使用下功能可以发现后端服务是正常运行的。

总结

今天主要带大家使用Jpom实现了mall项目的自动化部署,通过这个过程我们可以发现Jpom对于国人来说比Jenkins更加易用,功能也很强大!

原文:juejin.cn/post/74412279