pipeline { agent any environment { def mvnHome = tool 'maven-3.6.3' def jdk_home = tool 'jdk8' def build_tag = '' def version='1.0.15' def pj_name = 'polestar-statement-services' def nameSpace = 'yutu' def harborUrl = '120.27.1.123:8089/yutu' def imageId = '' def hostName = '121.36.16.56' def FilebeatImageId = 'docker.elastic.co/beats/filebeat:7.10.1' //Logstash地址 def LogstashHost = '192.168.0.220' //JVM参数 def JAVA_OPTS_VALUE = '-Xms2048m -Xmx2048m -XX:PermSize=2048M -XX:MaxPermSize=2048M' } stages { stage('build jar') { steps{ script { env.PATH = "${jdk_home}/bin:${mvnHome}/bin:${env.PATH}" //env.PATH = "${mvnHome}/apache-maven-3.6.3/bin:${env.PATH}" } //sh 'mvn clean package' sh 'mvn clean install -Dmaven.test.skip=true' } } stage('build image') { steps{ script { build_tag = sh(returnStdout: true, script: "date '+%Y%m%d%H%M%S'").trim() imageId = "${harborUrl}/${pj_name}:${build_tag}" } //sh "docker build --build-arg jarfile='target/${pj_name}.jar' -t ${imageId} ." sh "docker build --build-arg jarfile='target/${pj_name}-${version}.jar' --build-arg javaopt='${JAVA_OPTS_VALUE}' -t ${imageId} ." } } stage('push image') { steps{ sh "docker login -u yutu -p Yutu.2020 http://${harborUrl}" sh "docker push ${imageId}" sh "docker rmi ${imageId}" } } stage('deploy to k8s') { steps{ script { k8sPjname = sh(returnStdout: true, script: "echo ${pj_name} | sed 's/_//g'").trim() } sh "sed -i 's#myImageId#${imageId}#g' k8s.yaml" sh "sed -i 's/myPjName/${k8sPjname}/g' k8s.yaml" sh "sed -i 's/myNameSpace/${nameSpace}/g' k8s.yaml" sh "sed -i 's/myHostName/${hostName}/g' k8s.yaml" sh "sed -i 's/myIndexName/${pj_name}/g' k8s.yaml" sh "sed -i 's#JAVA_OPTS_VALUE#${JAVA_OPTS_VALUE}#g' k8s.yaml" sh "sed -i 's/myLogstashHost/${LogstashHost}/g' k8s.yaml" sh "sed -i 's#myFilebeatImageId#${FilebeatImageId}#g' k8s.yaml" sh "kubectl apply -f k8s.yaml" } } } }