在開發或生產環境中,我們有時候會上服務器器然後敲命令來部署項目。這種敲命令的方式不僅麻煩,有時候還容易出錯,此時使用一套自動化部署方案,不僅方便還不易出錯。最近發現了一款好用的自動化部署工具Jpom,體驗不輸Jenkins,分享給大家!
Jpom簡介
Jpom是一款簡而輕的自動化部署工具,目前在Gitee上已有8.5k+star,它具有在線構建、自動部署、日常運維、項目監控等功能。
它能解決你日常開發中的這些痛點!
mall項目簡介
由於我們之後要使用Jpom來實現mall項目的自動化部署,這裏先簡單介紹下mall項目,mall項目是一套基於SpringBoot3+ Vue 的電商系統(Github標星60K),後端支持多模塊和2024最新微服務架構,採用Docker和K8S部署。包括前台商城項目和後台管理系統,能支持完整的訂單流程!涵蓋商品、訂單、購物車、權限、優惠券、會員、支付等功能!
項目地址:
- Boot項目:https://github.com/macrozheng/mall
- Cloud項目:https://github.com/macrozheng/mall-swarm
- 教程網站:https://www.macrozheng.com
項目演示:
安裝
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端口上,第一次訪問會要求我們超級管理員賬户,訪問地址:http://192.168.3.101:2122
- 賬户創建完成後就可以訪問Jpom的控制枱頁面了。
自動化部署
接下來就以我的mall電商實戰項目為例,來介紹下Jpom的自動化部署功能。
準備
- 首先我們來了解下自動化部署的的流程
從gitee倉庫獲取代碼->使用maven打包項目->通過插件生成Docker鏡像->通過ssh執行腳本運行容器;
- 我們需要從
倉庫信息中添加一個倉庫,倉庫地址:https://gitee.com/macrozheng/mall
- 由於我們會使用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文檔了,訪問地址:http://192.168.3.101:8080/swagger-ui/
- 接下來我們來部署
mall-portal模塊,複製一個mall-admin模塊的構建,修改下構建流程中的腳本;
- 然後修改
發佈操作中的發佈後命令即可,mall-search模塊的構建配置也一樣;
- 後端服務部署完畢後,我們可以把mall項目的後台管理系統的前端運行起來看下效果;
- 然後把前台商城系統的前端運行起來看下效果,使用下功能可以發現後端服務是正常運行的。
總結
今天主要帶大家使用Jpom實現了mall項目的自動化部署,通過這個過程我們可以發現Jpom對於國人來説比Jenkins更加易用,功能也很強大!
項目地址
https://gitee.com/dromara/Jpom