pipline脚本:(分阶段完成maven构建和docker运行)
node {
stage('拉取代码') {
checkout(
[$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'login2_gitlab', url: 'http://192.168.56.201/root/web_single_disease.git']]
])
}
stage('编译代码') {
sh"""
export PATH=$PATH:/opt/apache-maven-3.6.1/bin
mvn clean package -Dmaven.test.skip=true
"""
}
stage('构建docker镜像') {
sh"""
cat > Dockerfile <<EOF
FROM tomcat:8
COPY target/*.war /usr/local/tomcat/webapps/spring_dis.war
EOF
tag=`date +"%Y_%m_%d"`
image_version=192.168.56.180/library/spring_test:\$tag
docker build . -t \$image_version
docker login 192.168.56.180 -u admin -p Harbor12345
docker push \$image_version
"""
}
stage('运行docker容器') {
sh"""
cid=`docker ps -a |grep spring_test |awk '{print \$1}'`
[ ! -z \$cid ] && docker rm -f \$cid
#添加hosts域名解析:--add-host host1:1.1.1.1 --add-host host2:2.2.2.2
tag=`date +"%Y_%m_%d"`
image_version=192.168.56.180/library/spring_test:\$tag
docker run -d --name spring_test -p 9999:8080 --add-host hadoop1:192.168.1.135 \$image_version
"""
}
}
运行结果: