再見Jenkins!一款更適合國人的自動化部署工具,賊帶勁!

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

相關文章