最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Jenkins中自動化部署Spring?Boot項目的全過程

 更新時間:2025年01月06日 10:03:43   作者:編程洪同學  
這篇文章主要介紹了如何使用Jenkins從Git倉庫拉取SpringBoot項目并進行自動化部署,通過配置Jenkins任務,實現項目的構建、鏡像構建和容器運行,確保項目在更新時自動部署,需要的朋友可以參考下

準備工作

本文將介紹如何使用 Jenkins 從倉庫中拉取項目,經過打包、構建鏡像、運行容器等步驟,最終將 Spring Boot 項目部署到服務器上供用戶訪問。并且當項目有更新時,自動觸發(fā) Jenkins 任務,實現自動化部署。

在開始之前,需要先創(chuàng)建一個 Spring Boot 項目,提供一些測試的接口。在確保項目正常運行的情況下,將項目推送到 Git 遠程倉庫。

Spring Boot 項目文件目錄結構:

Dockerfile 文件內容:

FROM bellsoft/liberica-openjdk-debian:17.0.11-cds

LABEL maintainer="hayden"

RUN mkdir -p /demo/server/logs \
    /demo/server/temp

WORKDIR /demo/server

ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms512m -Xmx512m"

EXPOSE ${SERVER_PORT}

ADD ./target/demo.jar ./app.jar

ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
           -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
           -jar app.jar

啟動 Jenkins

使用 docker-compose 構建 Jenkins 容器。

文件樹結構:

.
├── docker-compose.yml
└── jenkins
    ├── jenkins_config
    └── jenkins_home

docker-compose.yml 文件內容:

version : '3.0.01'
services:
  jenkins:
  container_name: jenkins
  image: jenkins/jenkins:lts-jdk17
  restart: unless-stopped
  ports:
    - "10000:8080"
  volumes:
    # 數據卷掛載路徑設置,將本機目錄映射到容器目錄 (下面映射可在容器中執(zhí)行宿主機docker命令)
    - "/usr/bin/docker:/usr/bin/docker"
    - "/var/run/docker.sock:/var/run/docker.sock"
    - "/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7"
    #      - "/usr/local/bin/docker-compose:/usr/local/bin/docker-compose"  # 無效
    - "./jenkins/jenkins_home:/var/jenkins_home"
    # ThinBackup插件備份jenkins配置存儲目錄
    - "./jenkins/jenkins_config:/var/jenkins_config"
    # 解決jenkins安裝插件報錯: An error occurred during installation: No such plugin: cloudbees-folder
    # 下載地址  http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/
    #      - "./jenkins/jenkins_home/war/META-INF/detached-plugins/cloudbees-folder.hpi:/var/jenkins_home/war/META-INF/detached-plugins/cloudbees-folder.hpi"
  environment:
    TZ: Asia/Shanghai
    LANG: en_US.UTF-8
    JAVA_OPTS: -Xmx512M -Xms512M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxNewSize=128m -Djava.util.logging.config.file=/var/jenkins_home/log.properties -Duser.timezone=Asia/Shanghai
  user: root # 使用root權限運行容器(docker中通過`-u root`命令)

啟動 Jenkins 容器:

docker-compose up -d jenkins

開放 10000 端口,允許外部訪問:

firewall-cmd --zone=public --add-port=10000/tcp --permanent
firewall-cmd --reload

配置 Jenkins

在瀏覽器中輸入 http://[ip]:10000 訪問 Jenkins。經過一系列設置,完成 Jenkins 的初始化。

在系統(tǒng)管理->全局工具配置中配置 JDK,以 JDK 17 為例:

安裝 URL:https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

在系統(tǒng)管理->全局工具配置中配置 Maven,以 Maven 3.9 為例:

下載完 Maven 后還需要修改鏡像地址,避免出現下載速度過慢的問題:

# 進入 Maven 配置文件目錄
cd jenkins/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/
# 編輯配置文件
vim maven-3.9.9/conf/settings.xml

# 替換原鏡像地址
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

::: tip 注意

使用 Jenkins 的安裝方式中,會將軟件安裝到對應目錄的下一層目錄,例如 JDK 安裝

到 jenkins/jenkins_home/tools/hudson.model.JDK/jdk-17/jdk-17.0.12,導致出現找不到 JDK 的問題。

解決方法:來到對應的目錄中,將 JDK 的目錄移動到上一層目錄即可。

cd jenkins/jenkins_home/tools/hudson.model.JDK/jdk-17
mv jdk-17.0.12/* .
rm -rf jdk-17.0.12

:::

創(chuàng)建及配置任務

在 Jenkins 主頁點擊新建任務,選擇構建一個 maven 項目,點擊確定:

源碼管理

在源碼管理中選擇 Git,填寫倉庫地址、憑證、分支等信息:

構建觸發(fā)器

在構建觸發(fā)器中選擇 Generic Webhook Trigger,填寫 Token,點擊應用:

這時來到 Git 遠程倉庫的 Webhook 配置頁面,填寫 Jenkins URL 和 Token,點擊添加:

URL 格式:http://[ip]:10000/generic-webhook-trigger/invoke?token=Token

構建

由于 pom.xml 在項目根目錄下,所以這邊默認使用 pom.xml 進行構建:

構建后操作

勾選 Run only if build succeeds,填寫 Shell 腳本:

# 刪除舊容器
docker rm -f my-spring-boot
# 刪除舊鏡像
docker rmi -f my-spring-boot:latest
# 構建新鏡像
docker build -t my-spring-boot .
# 運行容器
docker run --name my-spring-boot -p 8080:8080 -d my-spring-boot:latest

點擊保存,任務配置完成。

構建任務

在 Jenkins 主頁點擊任務名稱,點擊立即構建,可以看到正在構建的歷史過程。點擊構建歷史中的任務,可以查看詳細的構建日志:

多嘗試幾次,確保構建成功。

測試

在瀏覽器中輸入指定 URL,可以看到項目已經部署成功。并且當 Git 倉庫中的項目有更新時,Jenkins 會自動觸發(fā)任務,實現自動化部署:

總結 

到此這篇關于Jenkins中自動化部署Spring Boot項目的文章就介紹到這了,更多相關Jenkins自動化部署SpringBoot項目內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MybatisPlus使用聚合函數的示例代碼

    MybatisPlus使用聚合函數的示例代碼

    本文主要介紹了MybatisPlus使用聚合函數的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • MyBatis-Plus3.x版本使用入門和踩過的坑

    MyBatis-Plus3.x版本使用入門和踩過的坑

    Mybatis-Plus是Mybatis的增強版,他只是在Mybatis的基礎上增加了功能,且并未對原有功能進行任何的改動,本文給大家說一下MyBatis-Plus3.x版本使用入門和踩過的坑,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • SpringBoot ResponseBody返回值處理的實現

    SpringBoot ResponseBody返回值處理的實現

    這篇文章主要介紹了SpringBoot ResponseBody返回值處理的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Springboot接收?Form?表單數據的示例詳解

    Springboot接收?Form?表單數據的示例詳解

    這篇文章主要介紹了Springboot接收?Form?表單數據的實例代碼,本文通過圖文實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 23種設計模式(10)java組合模式

    23種設計模式(10)java組合模式

    這篇文章主要為大家詳細介紹了23種設計模式之java組合模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    在一個程序執(zhí)行的過程中各條語句的執(zhí)行順序對程序的結果是有直接影響的,這篇文章主要給大家介紹了關于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • Java hashCode() 方法詳細解讀

    Java hashCode() 方法詳細解讀

    Java.lang.Object 有一個hashCode()和一個equals()方法,這兩個方法在軟件設計中扮演著舉足輕重的角色,本文對hashCode()方法深入理解,希望能幫助大家
    2016-07-07
  • Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性

    Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性

    今天小編就為大家分享一篇關于Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Spring如何解決接口多實現類的依賴注入沖突

    Spring如何解決接口多實現類的依賴注入沖突

    在 Spring 中,當一個接口有多個實現類時,依賴注入(DI)的歧義性問題是一個常見挑戰(zhàn),本文為大家介紹了如何根據場景選擇最優(yōu)方案,希望對大家有所幫助
    2025-08-08
  • java讀取csv文件內容示例代碼

    java讀取csv文件內容示例代碼

    這篇文章主要介紹了java讀取csv文件內容的示例,大家參考使用
    2013-12-12

最新評論

大关县| 汨罗市| 延寿县| 阿城市| 天长市| 朝阳县| 晋中市| 汉川市| 延寿县| 蚌埠市| 奇台县| 宜宾市| 连江县| 万盛区| 绥宁县| 永德县| 紫云| 南涧| 天门市| 太保市| 渑池县| 南召县| 荔浦县| 日土县| 库伦旗| 安平县| 莎车县| 东台市| 洪湖市| 周至县| 资兴市| 济源市| 陆川县| 邹平县| 黄石市| 营口市| 赞皇县| 三门峡市| 乃东县| 双峰县| 阳原县|