環境准備:
- win10
- docker
- gitee
- 一台服務器
安裝jenkins配置環境
首先你自己的需要在電腦上搭建docker的環境,這邊就不介紹docker了。
接下來就是搜索鏡像,安裝jenkins,直接看圖吧
安裝好后啟動的時候需要指定下掛載目錄,方便后續的修改和查看
docker run -u root -d -p 8080:8080 -p 50000:50000 -v F:\tmp\jenkins_data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --name jenkins-test jenkinsci/blueocean
等待一會,打開瀏覽器 localhost:8080就可以看到以下畫面
然后去我們剛剛掛載的目錄下找到secrets下的初始密碼:
登錄進去初始化一會,根據你的網絡狀況看是否能加載出來這個頁面
安裝推薦的插件就行,要是沒加載出來,就跳過等下去,手動安裝插件
,默認安裝的插件如圖所示:
安裝完成就會讓你創建一個賬戶,創建完成會點擊重啟,等待幾分鍾就好,登錄進去就行。
配置:
進來就先進去,系統管理->插件管理->高級
將http://updates.jenkins.io/update-center.json 改為http的,記得點擊下面的立即獲取,等待驗證一下
gitee插件
然后就是安裝所需要的插件,這邊我用的是gitee,所以需要下載gitee的,等待安裝重啟
ssh插件
安裝ssh插件,需要上傳到服務器運行項目
maven任務插件
安裝maven任務插件
maven外部配置插件
安裝maven外部配置插件
jenkins配置
maven的配置
剛剛maven的插件下好后,在系統管理中就多了managed files
點進去后,左側選擇add 選擇maven settings.xml 更改自己想要的配置就行。
全局配置
maven就選擇剛剛新建的xml文件,這里的jdk,是選擇的jenkins默認安裝的,使用docker exec 進入jenkins的容器,使用which java
查看
后續的git和maven我都是用的自動安裝,安裝完成重啟jenkins
但是git的自動安裝完成也要配置一次,進入jenkins容器 which git
在全局設置中,需要添加一個gitee的令牌
ssh上傳到服務器配置 ,在全局配置里面的選項
新增maven任務
選擇剛剛配置的gitee地址,配置項目地址和登錄gitee的賬號密碼
選擇構建觸發器
注意下面的gitee webhook填寫的是localhost 但是我這邊用了花生殼做了映射,所以我在gitee中的配置是外網的
花生殼的映射
構建觸發器的配置
倉庫的webhook配置
執行構建
構建后上傳到服務器 執行停止和啟動腳本
腳本注意
start.sh 一定要加這個 不然你的腳本可能不會被執行,后台也會被殺掉
source /etc/profile
BUILD_ID=dontKillMe
source /etc/profile
#!/bin/bash
export JAVA_HOME=/home/tools/jdk1.8.0_251
echo ${JAVA_HOME}
echo 'Start the program : mall-0.0.1-SNAPSHOT.war'
chmod 777 /root/tmp/mall-0.0.1-SNAPSHOT.war
echo '-------Starting-------'
cd /root/tmp/
source /etc/profile
BUILD_ID=dontKillMe
nohup /home/tools/jdk1.8.0_251/bin/java -Dhudson.util.ProcessTree.disable=true -jar mall-0.0.1-SNAPSHOT.war > /dev/null 2>&1 >> test.log &
sleep 2
pid=`ps -ef |grep java|grep mall-0.0.1-SNAPSHOT.war|awk '{print $2}'`
echo 'pid: ' $pid
echo 'start success'
stop.sh
source /etc/profile
#!/bin/bash
echo "Stop Procedure : mall-0.0.1-SNAPSHOT.war"
pid=`ps -ef |grep java|grep mall-0.0.1-SNAPSHOT.war|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
then
kill -9 $pid
fi