复制 node ("192.168.30.128") { #指定slave标签#拉取代码stage('Git Checkout') { checkout([$class: 'GitSCM',branches: [[name: '$Tag']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@192.168.30.130:/home/git/solo.git']]])} #$Tag引用用户交互输入的tag#代码编译stage('Maven Build') { sh ''' export JAVA_HOME=/usr/local/jdk /usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true '''}#项目打包到镜像并推送到镜像仓库stage('Build and Puah Image') { sh ''' docker login -u admin -p Harbor12345 harbor.uqp.com REPOSITORY=harbor.uqp.com/project/solo:${Tag} cat > Dockerfile2 <<EOF FROM harbor.uqp.com/library/tomcat-85:latest RUN rm -rf /usr/local/tomcat/webapps/ROOT COPY target/*.war /usr/local/tomcat/webapps/ROOT.war CMD ["catalina.sh","run"]EOF docker build -t $REPOSITORY -f Dockerfile2 . docker push $REPOSITORY ''' #根据$Tag作为镜像版本号}#部署到Docker主机stage('Deploy to Docker') { sh ''' REPOSITORY=harbor.uqp.com/project/solo:${Tag} docker rm -f blog-solo | true docker image rm $REPOSITORY | true docker login -u amdin -p Harbor12345 harbor.uqp.com docker container run -d -v /usr/local/jdk:/usr/local/jdk --name blog-solo -p 88:8080 $REPOSITORY '''}} (责任编辑:) |