Jenkins+Pipeline+Docker概述

node {
//拉取代碼
stage('Git Checkout') {
checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false,
extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId:
'4694e8ed-1db3-43e9-8c1e-4b03b6c124e8', url: 'http://192.168.1.48/test/demo.git']]])
}
//編譯代碼
stage('Maven Build') {
sh '''
/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
'''
}
//鏡像製作並推送到鏡像倉庫
stage('Build and Push Image') {
sh '''
REPOSITORY=192.168.1.48/ceshi/tomcat-java-demo:${branch}
cat > Dockerfile << EOF
FROM 192.168.1.48/ceshi/tomcat:v1
MAINTAINER mindblowing
RUN rm -rf /usr/local/tomcat/webapps/
ADD target/*.war /usr/local/tomcat/webapps/ROOT.war
EOF
docker build -t $REPOSITORY .
docker login 192.168.1.48 -u admin -p Harbor12345
docker push $REPOSITORY
'''
}
//部署至Docker主機
stage('Deploy to Docker') {
sh '''
REPOSITORY=192.168.1.48/ceshi/tomcat-java-demo:${branch}
docker rm -f tomcat-java-demo |true
docker pull $REPOSITORY
docker container run -d --name tomcat-java-demo -p 81:8080 $REPOSITORY
'''
}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章