" />

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

Jenkins+Docker+Gitee+SpringBoot自動化部署

 更新時間:2022年03月01日 11:06:18   作者:xiangzhihong8  
本文主要介紹了Jenkins+Docker+Gitee+SpringBoot自動化部署,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下


當我們使用傳統(tǒng)的開發(fā)方式開發(fā)后臺系統(tǒng)時,每寫完一個功能點就需要重新運行一下項目,然后進行測試,如果是項目比較小還可以,但是如果項目比較大的話,由于涉及的人員比較多,這種開發(fā)方式就比較麻煩。基于此,我們就需要使用Jenkins配合Gitee搭建一個自動化部署平臺,并將代碼托管到服務器上,這樣減輕了本地的電腦壓力,也解放了部署的流程。

1, 搭建Jenkins平臺

首先,我們需要搭建一下Jenkins自動化構建平臺。首先,我們需要安裝Docker,然后在Docker中安裝Jenkins,安裝的命令如下:

# 安裝yum-utils工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的Docker Yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 啟動Docker
sudo systemctl start docker
# 配置開機自啟動
sudo systemctl enable docker

通過以上指令即可成功安裝Docker并啟動,接下來我們通過Docker運行Jenkins。

docker run \
  -d \
  --rm \
  -u root \
  -p 8080:8080 \
  -v /home/jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven \
  -v "$HOME":/home \
  jenkinsci/blueocean

執(zhí)行上述指令Docker會自動拉取Jenkins的鏡像并啟動,因為我們要部署的是SpringBoot,所以需要準備JDK和Maven環(huán)境,不過該Jenkins鏡像自帶了JDK環(huán)境,只需準備一下Maven即可,首先,下載Maven壓縮包,命令如下:

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

然后,使用命令解壓文件。

tar -zxvf apache-maven-3.6.3-bin.tar.gz

解壓之后千萬要注意Maven所在的目錄,比如:

/opt/develop_resource/apache-maven-3.6.3

將它掛載到容器的目錄里,-v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven這一條指令中的Maven目錄千萬記得換成自己的?,F(xiàn)在,我們可以運行剛才的指令啟動Jenkins了,通過docker ps指令可以查看容器是否啟動。

[root@10 /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
dfa1b8b2c7a3   jenkinsci/blueocean   "/sbin/tini -- /usr/…"   15 seconds ago   Up 9 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp   condescending_meitner

接下來,我們使用服務器的ip加端口8080的方式訪問Jenkins。

在這里插入圖片描述

管理員密碼可以在Jenkins的啟動日志中查看,使用docker logs dfa1b8b2c7a3查看日志:

在這里插入圖片描述

密碼就是紅框中的字符串,注意紅框下的一段提示:

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

意思是你可以在/var/jenkins_home/secrets/initialAdminPassword這個文件中查看到管理員密碼,不過這是Jenkins容器內(nèi)的目錄,我們在啟動Jenkins的就掛載了Jenkins的關鍵目錄/var/jenkins_home,宿主機目錄為/home/jenkins-data,所以可以使用如下指令查看管理員密碼。

cat /home/jenkins-data/secrets/initialAdminPassword

得到密碼后輸入到Jenkins頁面解鎖Jenkins,然后點擊安裝推薦的插件。

在這里插入圖片描述

在這里插入圖片描述

接下來,直接點擊【下一步】。

在這里插入圖片描述

在這里插入圖片描述

到這一步,Jenkins平臺就可以正式使用了。

2, Jenkins平臺配置

接下來,就是對Jenkins平臺的配置,首先配置Maven。

在這里插入圖片描述

按步驟點擊,即可進入系統(tǒng)配置。首先,在全局屬性中進行配置。

在這里插入圖片描述

在這里插入圖片描述

還記得我們在運行Jenkins容器時掛載的Maven目錄嗎?掛載到Jenkins容器中的目錄就是/usr/local/maven,如果實在搞不懂的你就保持和我的配置一樣即可。

以同樣的方式,再新增一個配置:

在這里插入圖片描述

PATH+EXTRA的作用是讓原來PATH變量中的環(huán)境不丟失,最后點擊保存。Maven配置完成后,需要配置Gitee。

在這里插入圖片描述

在這里插入圖片描述

點擊可選插件,選中Gitee,然后點擊Install without restart進行安裝,等待安裝完成即可,Gitee的相關配置我們放到后面講。

3,創(chuàng)建SpringBoot應用

首先,我們創(chuàng)建一個簡單的SpringBoot應用進行測試,控制器代碼如下。

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

然后在配置文件application.yml中添加:

server:
  port: 8000

并在main下新建docker文件夾,在docker文件夾下新建Dockefile文件,內(nèi)容如下。

# 指定是基于哪個基礎鏡像
FROM java:8

# 作者信息
MAINTAINER wwj

# 掛載點聲明
VOLUME /tmp

# 將本地的一個文件或目錄,拷貝到容器的文件或目錄里
ADD /target/demo-0.0.1-SNAPSHOT.jar springboot.jar

#shell腳本
RUN bash -c 'touch /springboot.jar'

# 將容器的8000端口暴露,給外部訪問。
EXPOSE 8000

# 當容器運行起來時執(zhí)行使用運行jar的指令
ENTRYPOINT ["java", "-jar", "springboot.jar"]

需要注意的是ADD指令的編寫,當SpringBoot應用打包完成后,其jar包會被放在target目錄下。

在這里插入圖片描述

所以需要指定該文件的位置,使用ADD指令將其放入待構建的容器中,接著在Gitee中新建一個倉庫,并將代碼推送到倉庫中。

在這里插入圖片描述

倉庫名隨便你叫什么,然后將剛才的應用推送上去即可。

在這里插入圖片描述

4,Gitee配置

推送完成后,回到Jenkins管理界面,我們來完成Gitee的配置,打開系統(tǒng)配置。

在這里插入圖片描述

找到Gitee配置,填入對應的信息:

在這里插入圖片描述

點擊添加按鈕添加一個Jenkins憑證。

在這里插入圖片描述

選擇Gitee API 令牌:

在這里插入圖片描述

私人令牌的獲取地址為:https://gitee.com/profile/personal_access_tokens。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

5, 新建自動化部署任務

配置完成,接下來新建一個任務,點擊新建Item。

在這里插入圖片描述

隨便輸入一個任務名稱,并選擇【Freestyle project】。

在這里插入圖片描述

在源碼管理處勾選Git,并填入項目地址,然后在構建觸發(fā)器位置勾選觸發(fā)打包的時機。

在這里插入圖片描述

在構建觸發(fā)器最底部位置點擊生成Gitee WebHook密碼。

在這里插入圖片描述

然后打開Gitee項目中的WebHooks,添加webHook。

在這里插入圖片描述

在這里插入圖片描述

此處的URL需要填入一個公網(wǎng)IP,所以如果你是用的虛擬機,就需要用內(nèi)網(wǎng)穿透工具映射一下。

在這里插入圖片描述

在這里插入圖片描述

至于URL應該填什么,我們需要修改一下。

在這里插入圖片描述

填寫完成后點擊添加,Gitee便會發(fā)送一個Post請求到Jenkins,如果請求結果如下所示,則配置成功了。

在這里插入圖片描述

重新回到Jenkins管理界面,繼續(xù)勾選構建觸發(fā)器下的輪詢SCM,輸入輪詢頻率。

在這里插入圖片描述

最后在構建位置下增加構建步驟,選擇執(zhí)行shell。

在這里插入圖片描述

shell腳本代碼如下。

#!/bin/bash -il
docker rm -f app_docker
sleep 1
docker rmi -f app_docker:1.0
sleep 1
mvn clean install -Dmaven.test.skip=true
sleep 1
docker build -t app_docker:1.0 -f ./src/main/docker/Dockerfile .
sleep 1
docker run -d -p 8000:8000 --name app_docker app_docker:1.0

該腳本表示刪除正在運行的app_docker容器,并刪除app_docker:1.0鏡像,然后使用mvn命令打包從Gitee拉取來的項目代碼,接著使用項目中的Dockerfile文件構建出一個鏡像,名稱為app_docker:1.0,最后運行該鏡像。

6,打包測試

最后點擊保存,部署任務就創(chuàng)建完成了,我們來測試一下有沒有問題。

在這里插入圖片描述

點擊立即構建,Jenkins會立馬進行一次構建,查看控制臺輸出。

在這里插入圖片描述

最后,我們打開默認的地址即可。

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

相關文章

  • SpringBoot+MinIO實現(xiàn)文件上傳、讀取、下載、刪除的使用示例

    SpringBoot+MinIO實現(xiàn)文件上傳、讀取、下載、刪除的使用示例

    本文主要介紹了SpringBoot+MinIO實現(xiàn)文件上傳、讀取、下載、刪除的使用示例,詳細介紹每個功能實現(xiàn)的步驟和代碼示例,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 如何在Java中讀取resources下的文件及資源路徑

    如何在Java中讀取resources下的文件及資源路徑

    本文介紹了如何在Java中讀取resources下的文件以及獲取resource文件的路徑,通過使用ClassLoader或Class的getResourceAsStream方法,可以輕松地讀取resources目錄下的文件,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • Mybatis批量插入數(shù)據(jù)的兩種方式總結與對比

    Mybatis批量插入數(shù)據(jù)的兩種方式總結與對比

    批量插入功能是我們?nèi)粘9ぷ髦斜容^常見的業(yè)務功能之一,下面這篇文章主要給大家介紹了關于Mybatis批量插入數(shù)據(jù)的兩種方式總結與對比的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Velocity基本語法介紹

    Velocity基本語法介紹

    以下是對Velocity的基本語法進行了深入的介紹。需要的朋友可以過來參考下
    2013-08-08
  • Java直接插入排序算法實現(xiàn)

    Java直接插入排序算法實現(xiàn)

    這篇文章主要介紹了Java直接插入排序算法實現(xiàn),有需要的朋友可以參考一下
    2014-01-01
  • Java實現(xiàn)音頻轉文本的示例代碼(語音識別)

    Java實現(xiàn)音頻轉文本的示例代碼(語音識別)

    Java中實現(xiàn)音頻轉文本通常涉及使用專門的語音識別服務,本文主要介紹了Java實現(xiàn)音頻轉文本的示例代碼(語音識別),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Vue.Js及Java實現(xiàn)文件分片上傳代碼實例

    Vue.Js及Java實現(xiàn)文件分片上傳代碼實例

    這篇文章主要介紹了Vue.Js及Java實現(xiàn)文件分片上傳代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 詳解java數(shù)組進行翻轉的方法有哪些

    詳解java數(shù)組進行翻轉的方法有哪些

    這篇文章主要介紹了詳解java數(shù)組進行翻轉的方法有哪些,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Java 5個人坐在一起(有關第五個人歲數(shù)的問題)

    Java 5個人坐在一起(有關第五個人歲數(shù)的問題)

    利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推,需要的朋友可以參考下
    2017-02-02
  • Java服務器端跨域問題解決方案

    Java服務器端跨域問題解決方案

    這篇文章主要介紹了java服務器端跨域問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論

克东县| 英山县| 大连市| 平阴县| 广灵县| 古蔺县| 天气| 宁明县| 闵行区| 西昌市| 西乌珠穆沁旗| 韶关市| 江达县| 吉木萨尔县| 平利县| 宁阳县| 桐城市| 胶州市| 沅江市| 民县| 沾益县| 保亭| 于田县| 大理市| 南华县| 沾益县| 舞阳县| 许昌市| 襄垣县| 西林县| 永和县| 两当县| 榕江县| 仙游县| 旅游| 秭归县| 隆化县| 栾川县| 汉沽区| 攀枝花市| 孟州市|