<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當我們使用傳統的開發方式開發後臺系統時,每寫完一個功能點就需要重新執行一下專案,然後進行測試,如果是專案比較小還可以,但是如果專案比較大的話,由於涉及的人員比較多,這種開發方式就比較麻煩。基於此,我們就需要使用Jenkins配合Gitee搭建一個自動化部署平臺,並將程式碼託管到伺服器上,這樣減輕了原生的電腦壓力,也解放了部署的流程。
首先,我們需要搭建一下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
執行上述指令Docker會自動拉取Jenkins的映象並啟動,因為我們要部署的是SpringBoot,所以需要準備JDK和Maven環境,不過該Jenkins映象自帶了JDK環境,只需準備一下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目錄千萬記得換成自己的。現在,我們可以執行剛才的指令啟動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容器內的目錄,我們在啟動Jenkins的就掛載了Jenkins的關鍵目錄/var/jenkins_home,宿主機目錄為/home/jenkins-data,所以可以使用如下指令檢視管理員密碼。
cat /home/jenkins-data/secrets/initialAdminPassword
得到密碼後輸入到Jenkins頁面解鎖Jenkins,然後點選安裝推薦的外掛。
接下來,直接點選【下一步】。
到這一步,Jenkins平臺就可以正式使用了。
接下來,就是對Jenkins平臺的設定,首先設定Maven。
按步驟點選,即可進入系統設定。首先,在全域性屬性中進行設定。
還記得我們在執行Jenkins容器時掛載的Maven目錄嗎?掛載到Jenkins容器中的目錄就是/usr/local/maven,如果實在搞不懂的你就保持和我的設定一樣即可。
以同樣的方式,再新增一個設定:
PATH+EXTRA的作用是讓原來PATH變數中的環境不丟失,最後點選儲存。Maven設定完成後,需要設定Gitee。
點選可選外掛,選中Gitee,然後點選Install without restart進行安裝,等待安裝完成即可,Gitee的相關設定我們放到後面講。
首先,我們建立一個簡單的SpringBoot應用進行測試,控制器程式碼如下。
@RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "Hello World!"; } }
然後在組態檔application.yml中新增:
server: port: 8000
並在main下新建docker資料夾,在docker資料夾下新建Dockefile檔案,內容如下。
# 指定是基於哪個基礎映象 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 # 當容器執行起來時執行使用執行jar的指令 ENTRYPOINT ["java", "-jar", "springboot.jar"]
需要注意的是ADD指令的編寫,當SpringBoot應用打包完成後,其jar包會被放在target目錄下。
所以需要指定該檔案的位置,使用ADD指令將其放入待構建的容器中,接著在Gitee中新建一個倉庫,並將程式碼推播到倉庫中。
倉庫名隨便你叫什麼,然後將剛才的應用推播上去即可。
推播完成後,回到Jenkins管理介面,我們來完成Gitee的設定,開啟系統設定。
找到Gitee設定,填入對應的資訊:
點選新增按鈕新增一個Jenkins憑證。
選擇Gitee API 令牌:
私人令牌的獲取地址為:https://gitee.com/profile/personal_access_tokens。
設定完成,接下來新建一個任務,點選新建Item。
隨便輸入一個任務名稱,並選擇【Freestyle project】。
在原始碼管理處勾選Git,並填入專案地址,然後在構建觸發器位置勾選觸發打包的時機。
在構建觸發器最底部位置點選生成Gitee WebHook密碼。
然後開啟Gitee專案中的WebHooks,新增webHook。
此處的URL需要填入一個公網IP,所以如果你是用的虛擬機器器,就需要用內網穿透工具對映一下。
至於URL應該填什麼,我們需要修改一下。
填寫完成後點選新增,Gitee便會傳送一個Post請求到Jenkins,如果請求結果如下所示,則設定成功了。
重新回到Jenkins管理介面,繼續勾選構建觸發器下的輪詢SCM,輸入輪詢頻率。
最後在構建位置下增加構建步驟,選擇執行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,最後執行該映象。
最後點選儲存,部署任務就建立完成了,我們來測試一下有沒有問題。
點選立即構建,Jenkins會立馬進行一次構建,檢視控制檯輸出。
最後,我們開啟預設的地址即可。
到此這篇關於Jenkins+Docker+Gitee+SpringBoot自動化部署的文章就介紹到這了,更多相關Jenkins Docker+Gitee+SpringBoot自動化部署內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45