jenkins pipeline 配置與使用(svn版)
環境檢測(基於centos)
java環境
tomcat環境
maven環境
docker環境 (不是必要的)
安裝java
https://www.cnblogs.com/stulzq/p/9286878.html
安裝tomcat
https://blog.51cto.com/13525470/2073657
安裝maven
https://blog.csdn.net/myNameIssls/article/details/54140176
安裝docker
https://blog.csdn.net/ZPJeck/article/details/103279832
部署jenkins
把jar包放到tomcat 的webapps中
跳過啓動和下載插件環節,直接開始新建流水線
項目描述
參數化構建
插件:Extended Choice Parameter
pipeline
pipeline {
agent any
environment{
MAVEN_HOME = "/usr/maven/apache-maven-3.6.1"
}
stages {
stage('拉取代碼'){
steps {
echo env.version
echo 'pull code '
// 此處填寫svn 鏈接
}
}
stage('編譯打包'){
steps {
echo "開始編譯"
sh "${MAVEN_HOME}/bin/mvn clean package -Dmaven.test.skip=true "
}
}
stage('製作和上傳鏡像'){
steps{
sh "chmod +x jenkins.sh"
sh "vi +':w ++ff=unix' +':q' jenkins.sh"
// sh " ./jenkins ${env.choice} ${env.version}"
sh " sh jenkins.sh ${env.choice} ${env.version}"
}
}
}
}
Dockerfile : 放在Java項目中,與target同級目錄(根據自己需求存放)
FROM java:8
ADD upload-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch app.jar'
EXPOSE 8200
ENTRYPOINT ["java","-jar","/app.jar"]
jenkins.sh :放在項目中(根據自己需求存放)
#!/bin/bash
tenv="$1"
version="$2"
echo $tenv
cd KCB-Http/
docker build -t http-$tenv:$version -f Dockerfile-$tenv .
docker tag http-$tenv:$version 192.168.1.136:8900/library/http-$tenv:$version
cd ../KCB-Sync/
docker build -t sync-$tenv:$version -f Dockerfile-$tenv .
docker tag sync-$tenv:$version 192.168.1.136:8900/library/sync-$tenv:$version
echo "登錄Harbor"
docker login 192.168.1.136:8900 -u admin -p Vkdata668
echo "上傳鏡像"
docker push 192.168.1.136:8900/library/http-$tenv:$version
docker push 192.168.1.136:8900/library/sync-$tenv:$version
獲取svn鏈接: 點擊流水線語法,選擇 checkout: Check out from version control
複製生成的代碼,拷貝到對應的拉區步驟裏。
保存,打包,運行,上傳到私有鏡像倉庫