系統:Linux CentntOs 7
jdk : 1.8
maven: 3.5
git
docker
[1] war包的形式下載: http://mirrors.jenkins-ci.org/war/latest/jenkins.war
[2] 把下載後的war包移動到linux系統上
[3] 啓動jenkins
參數解釋:
/usr/local/jenkins/jenkins.war 表示你現在jenkins存放的路徑,根據實際情況更改
/usr/local/jenkins/jenkins.out 表示把你jenkins的輸出日誌的位置
& 表示在後台靜默啓動
nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out &
[4] 輸入你自己的主機ip + 8080
例如:http://192.168.31.85:8080/
這裏需要一個密碼驗證 (根據提示檢視紅色字型下的檔案)
[5] 在linux上檢視金鑰,並把密碼輸入上面的框
cat /root/.jenkins/secrets/initialAdminPassword # 檢視密碼
[6] 進入下一個頁面後,請別點選安裝。因爲官方下載外掛較慢,需要更換映象源
[7] 更換映象源
/root/.jenkins/ 該地址是你獲取金鑰的地址(即jenkins的安裝地址)
cd /root/.jenkins/updates
直接在命令列上輸入:
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
這裏需要殺死剛纔啓動的jenkins進程,重新啓動
ps -ef | grep jenkins # 檢視當前進程
kill 進程號 # 殺死進程
nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out & # 啓動jenkins
[8] 安裝外掛
[9] 建立一個使用者
[10] 進入jenkins的主介面
【1】在主介面進行環境的相關設定
【2】 設定系統中的jdk, maven, git 等環境
設定jdk
可以通過命令列查詢安裝路徑(下面 下麪的類似)
which jdk
設定Maven
設定Git
【3】 自動化構建專案
準備工作:
<1>需要在專案的根目錄下加上 Dockerfile檔案
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/demojenkins.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]
參數解釋:
./target/demojenkins.jar 表示你打包後目錄下的名字
demojenkins.jar 表示覆制到當前專案後的名字
<2> 在打包的pom.xml檔案上做兩處修改
修改打包的方式和打包後的名字
【4】 在jenkins管理化介面建立自動化的任務
在構建任務時需要設定遠端倉庫的地址和執行的指令碼
<1> 設定遠端倉庫的地址
<2> 新增可執行的指令碼
相關指令碼檔案:(只需要修改 路徑,專案名,埠號)
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="demojenkins"
service_prot=8081
#檢視映象id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $SERVER_NAME image,IID=$IID"
#刪除映象
docker rmi -f $service_name
echo "delete $SERVER_NAME image"
#構建
docker build -t $service_name .
echo "build $SERVER_NAME image"
else
echo "no exist $SERVER_NAME image,build docker"
#構建
docker build -t $service_name .
echo "build $SERVER_NAME image"
fi
#檢視容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $SERVER_NAME container,CID=$CID"
#停止
docker stop $service_name
#刪除容器
docker rm $service_name
else
echo "no exist $SERVER_NAME container"
fi
#啓動
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#檢視啓動日誌
docker logs -f $service_name
這樣就能成功構建一個任務
[5] 執行任務
執行任務時先啓動docker
service docker start
點選進入後
Tips:
檢視控制檯輸出:
日誌內容