亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Jenkins中自動(dòng)化部署Spring?Boot項(xiàng)目的全過(guò)程

 更新時(shí)間:2025年01月06日 10:03:43   作者:編程洪同學(xué)  
這篇文章主要介紹了如何使用Jenkins從Git倉(cāng)庫(kù)拉取SpringBoot項(xiàng)目并進(jìn)行自動(dòng)化部署,通過(guò)配置Jenkins任務(wù),實(shí)現(xiàn)項(xiàng)目的構(gòu)建、鏡像構(gòu)建和容器運(yùn)行,確保項(xiàng)目在更新時(shí)自動(dòng)部署,需要的朋友可以參考下

準(zhǔn)備工作

本文將介紹如何使用 Jenkins 從倉(cāng)庫(kù)中拉取項(xiàng)目,經(jīng)過(guò)打包、構(gòu)建鏡像、運(yùn)行容器等步驟,最終將 Spring Boot 項(xiàng)目部署到服務(wù)器上供用戶訪問(wèn)。并且當(dāng)項(xiàng)目有更新時(shí),自動(dòng)觸發(fā) Jenkins 任務(wù),實(shí)現(xiàn)自動(dòng)化部署。

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

Spring Boot 項(xiàng)目文件目錄結(jié)構(gòu):

Dockerfile 文件內(nèi)容:

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

啟動(dòng) Jenkins

使用 docker-compose 構(gòu)建 Jenkins 容器。

文件樹結(jié)構(gòu):

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

docker-compose.yml 文件內(nèi)容:

version : '3.0.01'
services:
  jenkins:
  container_name: jenkins
  image: jenkins/jenkins:lts-jdk17
  restart: unless-stopped
  ports:
    - "10000:8080"
  volumes:
    # 數(shù)據(jù)卷掛載路徑設(shè)置,將本機(jī)目錄映射到容器目錄 (下面映射可在容器中執(zhí)行宿主機(jī)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"  # 無(wú)效
    - "./jenkins/jenkins_home:/var/jenkins_home"
    # ThinBackup插件備份jenkins配置存儲(chǔ)目錄
    - "./jenkins/jenkins_config:/var/jenkins_config"
    # 解決jenkins安裝插件報(bào)錯(cuò): 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權(quán)限運(yùn)行容器(docker中通過(guò)`-u root`命令)

啟動(dòng) Jenkins 容器:

docker-compose up -d jenkins

開放 10000 端口,允許外部訪問(wèn):

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

配置 Jenkins

在瀏覽器中輸入 http://[ip]:10000 訪問(wèn) Jenkins。經(jīng)過(guò)一系列設(shè)置,完成 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 后還需要修改鏡像地址,避免出現(xiàn)下載速度過(guò)慢的問(wèn)題:

# 進(jìn)入 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 的安裝方式中,會(huì)將軟件安裝到對(duì)應(yīng)目錄的下一層目錄,例如 JDK 安裝

到 jenkins/jenkins_home/tools/hudson.model.JDK/jdk-17/jdk-17.0.12,導(dǎo)致出現(xiàn)找不到 JDK 的問(wèn)題。

解決方法:來(lái)到對(duì)應(yīng)的目錄中,將 JDK 的目錄移動(dòng)到上一層目錄即可。

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

:::

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

在 Jenkins 主頁(yè)點(diǎn)擊新建任務(wù),選擇構(gòu)建一個(gè) maven 項(xiàng)目,點(diǎn)擊確定:

源碼管理

在源碼管理中選擇 Git,填寫倉(cāng)庫(kù)地址、憑證、分支等信息:

構(gòu)建觸發(fā)器

在構(gòu)建觸發(fā)器中選擇 Generic Webhook Trigger,填寫 Token,點(diǎn)擊應(yīng)用:

這時(shí)來(lái)到 Git 遠(yuǎn)程倉(cāng)庫(kù)的 Webhook 配置頁(yè)面,填寫 Jenkins URL 和 Token,點(diǎn)擊添加:

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

構(gòu)建

由于 pom.xml 在項(xiàng)目根目錄下,所以這邊默認(rèn)使用 pom.xml 進(jìn)行構(gòu)建:

構(gòu)建后操作

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

# 刪除舊容器
docker rm -f my-spring-boot
# 刪除舊鏡像
docker rmi -f my-spring-boot:latest
# 構(gòu)建新鏡像
docker build -t my-spring-boot .
# 運(yùn)行容器
docker run --name my-spring-boot -p 8080:8080 -d my-spring-boot:latest

點(diǎn)擊保存,任務(wù)配置完成。

構(gòu)建任務(wù)

在 Jenkins 主頁(yè)點(diǎn)擊任務(wù)名稱,點(diǎn)擊立即構(gòu)建,可以看到正在構(gòu)建的歷史過(guò)程。點(diǎn)擊構(gòu)建歷史中的任務(wù),可以查看詳細(xì)的構(gòu)建日志:

多嘗試幾次,確保構(gòu)建成功。

測(cè)試

在瀏覽器中輸入指定 URL,可以看到項(xiàng)目已經(jīng)部署成功。并且當(dāng) Git 倉(cāng)庫(kù)中的項(xiàng)目有更新時(shí),Jenkins 會(huì)自動(dòng)觸發(fā)任務(wù),實(shí)現(xiàn)自動(dòng)化部署:

總結(jié) 

到此這篇關(guān)于Jenkins中自動(dòng)化部署Spring Boot項(xiàng)目的文章就介紹到這了,更多相關(guān)Jenkins自動(dòng)化部署SpringBoot項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)整理

    Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)整理

    這篇文章主要給大家介紹了關(guān)于Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)的相關(guān)資料,在Java編程中final關(guān)鍵字用于限制方法或類的進(jìn)一步修改,final方法不能被子類重寫,而static方法不可被重寫,只能被遮蔽,需要的朋友可以參考下
    2024-10-10
  • LocalDateTime日期時(shí)間格式中間多了一個(gè)T的問(wèn)題及解決

    LocalDateTime日期時(shí)間格式中間多了一個(gè)T的問(wèn)題及解決

    這篇文章主要介紹了LocalDateTime日期時(shí)間格式中間多了一個(gè)T的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗(yàn))

    SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗(yàn))

    Sa-Token?是一個(gè)輕量級(jí)?java?權(quán)限認(rèn)證框架,主要解決登錄認(rèn)證、權(quán)限認(rèn)證、單點(diǎn)登錄、OAuth2、微服務(wù)網(wǎng)關(guān)鑒權(quán)?等一系列權(quán)限相關(guān)問(wèn)題,這篇文章主要介紹了SpringBoot使用Sa-Token完成注解鑒權(quán)功能,需要的朋友可以參考下
    2023-05-05
  • 詳解springboot中的jar包部署步驟

    詳解springboot中的jar包部署步驟

    這篇文章主要介紹了springboot中的jar包部署步驟及l(fā)inux中部署項(xiàng)目常用指令,需要的朋友可以參考下
    2018-07-07
  • SpringBoot邏輯異常統(tǒng)一處理方法

    SpringBoot邏輯異常統(tǒng)一處理方法

    這篇文章主要介紹了SpringBoot邏輯異常統(tǒng)一處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Spring中存對(duì)象和取對(duì)象的方式詳解

    Spring中存對(duì)象和取對(duì)象的方式詳解

    這篇文章主要介紹了Spring中存對(duì)象和取對(duì)象的方式,Spring中更簡(jiǎn)單的存對(duì)象與取對(duì)象的方式是注解,注解實(shí)現(xiàn)有兩種方式:一在編譯的時(shí)候,把注解替換成相關(guān)代碼,并添加到我們?cè)瓉?lái)的代碼中,二攔截方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08
  • Spring Boot Jar 包部署腳本的實(shí)例講解

    Spring Boot Jar 包部署腳本的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Spring Boot Jar 包部署腳本的實(shí)例講解內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • linux用java -jar啟動(dòng)jar包緩慢的問(wèn)題

    linux用java -jar啟動(dòng)jar包緩慢的問(wèn)題

    這篇文章主要介紹了linux用java -jar啟動(dòng)jar包緩慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-09-09
  • Springboot單元測(cè)試無(wú)法讀取配置文件的解決方案

    Springboot單元測(cè)試無(wú)法讀取配置文件的解決方案

    這篇文章主要介紹了Springboot單元測(cè)試無(wú)法讀取配置文件的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • eclipse連接不到genymotion問(wèn)題的解決方案

    eclipse連接不到genymotion問(wèn)題的解決方案

    今天小編就為大家分享一篇關(guān)于eclipse連接不到genymotion問(wèn)題的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論