在開發或生產環境中,我們有時候會上伺服器器然後敲命令來部署專案。這種敲命令的方式不僅麻煩,有時候還容易出錯,此時使用一套自動化部署方案,不僅方便還不易出錯。最近發現了一款好用的自動化部署工具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