动态

详情 返回 返回

Jenkins+Docker一鍵打包部署項目!步驟齊全,少走坑路! - 动态 详情

有些程序員在項目上線時,會選擇手敲命令來部署項目,這種方式一旦敲錯命令就會導致項目部署失敗。今天給大家分享一套基於Jenkins+Docker的自動化部署方案,部署齊全,能讓你少走坑路!

Jenkins簡介

Jenkins是一款領先的開源自動化工具,採用Java構建,提供超過1800個插件,支持自動化幾乎所有任務,目前在Github上已有23k+Star。其目標是通過自動化重複性的工作,減少人工干預,使使用者能夠專注於機器無法完成的任務。

下面是Jenkins使用過程中的效果圖,界面還是挺清新優雅的!

mall項目

這裏將以mall電商實戰項目的自動化部署為例來講解下Jenkins的使用。

這裏簡單介紹下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

項目演示:

Jenkins的安裝

使用Docker來安裝Jenkins是非常方便的,這裏採用此種方式來安裝。
  • 首先通過如下命令下載Jenkins的Docker鏡像;
docker pull jenkins/jenkins:lts
  • 然後通過如下命令在容器中運行Jenkins。
docker run -p 8180:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts

Jenkins的配置

  • Jenkins首次運行成功後輸入管理員密碼才可以使用,訪問地址:http://192.168.3.101:8180/

  • 可以使用以下命令從容器啓動日誌中獲取管理密碼;
docker logs -f jenkins

  • 接下來就需要為Jenkins安裝插件了,這裏選擇安裝推薦的插件

  • 安裝完成後,創建一個Jenkins的管理員賬號;

  • 進行實例配置,配置Jenkins的URL;

  • 點擊系統管理->插件管理,可以進行插件的安裝;

  • 這裏需要安裝SSH plugin插件,用於訪問遠程主機並執行命令;

  • 通過系統管理->全局工具配置來進行全局工具的配置,這裏新增了maven的安裝配置;

  • 系統管理->系統配置中添加全局ssh的配置,這樣Jenkins使用ssh就可以執行遠程主機上的Linux腳本了:

  • 需要注意的是這裏的服務器賬號密碼要在系統管理->管理管理中進行配置才能選擇,此處選擇為全局

  • 然後選擇添加憑據,輸入需要遠程訪問的服務器賬號密碼即可。

一鍵部署SpringBoot項目

接下來就以我的mall電商實戰項目為例,來講解下如何使用Jenkins一鍵部署SpringBoot項目。

執行腳本準備

  • 首先我們需要把遠程執行的腳本準備好,腳本文件都存放在了mall項目的/document/sh目錄下,項目地址:https://gitee.com/macrozheng/mall

  • 將所有腳本文件上傳到Linux服務器的/mydata/sh目錄下,並修改為可執行文件;

Jenkins中創建任務

接下來我們將通過在Jenkins中創建任務來實現mall項目的自動化部署。

mall-admin

由於各個模塊的創建任務都大同小異,下面將詳細講解mall-admin模塊任務的創建,其他模塊將簡略講解。
  • 首先我們選擇構建一個自由風格的軟件項目,然後在源碼管理部分配置其Git倉庫地址:https://gitee.com/macrozheng/mall

  • 之後在構建步驟部分增加一個構建步驟,構建mall項目中的依賴模塊,構建的POM路徑為${WORKSPACE}/pom.xml
# 只install mall-common,mall-mbg,mall-security三個模塊
clean install -pl mall-common,mall-mbg,mall-security -am
  • 依賴項目構建不支示意圖如下;

  • 再增加一個構建步驟,單獨構建並打包mall-admin模塊,構建的目標為clean package,構建的POM路徑為${WORKSPACE}/mall-admin/pom.xml

  • 再增加一個構建步驟,通過遠程SSH去執行mall-admin的運行腳本,執行命令為/mydata/sh/mall-admin.sh

  • 點擊保存,完成mall-admin的任務創建,之後在任務列表裏點擊運行即可部署;

  • 運行成功後,即可訪問mall-admin的API文檔,訪問地址:http://192.168.3.101:8080/swagger-ui/

  • 然後訪問下mall項目後台管理系統的前端測試下功能,訪問地址:http://192.168.3.101/admin/

mall-portal

mall-portal和mall-admin創建任務方式基本一致,只需修改構建模塊時的pom.xml文件位置和SSH執行腳本命令即可。
  • 我們可以直接從mall-admin模塊的任務複製一個過來創建;

  • 修改構建步驟第二步中的pom.xml文件位置及第三步的SSH執行命令即可;

  • 運行成功後,即可訪問mall-portal的API文檔,訪問地址:http://192.168.3.101:8085/swagger-ui/

  • 然後訪問下mall項目前台商城系統的前端測試下功能,訪問地址:http://192.168.3.101/app/

mall-search

  • 修改構建步驟第二步中的pom.xml文件位置及第三步的SSH執行命令即可;

  • 運行成功後,即可訪問mall-search的API文檔,訪問地址:http://192.168.3.101:8081/swagger-ui/

總結

使用Jenkins來部署SpringBoot項目還是非常方便的,只要在任務中配置好構建的步驟,然後點擊運行按鈕就可以實現一鍵部署了,還可以有效避免手敲命令部署上線帶來的坑,感興趣的小夥伴可以嘗試下!

項目地址

https://github.com/macrozheng/mall

user avatar ivictor 头像 kubeexplorer 头像 menglihuaxiangbian 头像 uyangxiansen 头像 guangmingleiluodetouyingyi_bccdlf 头像 hz_linmu 头像
点赞 6 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.