You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					53 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					53 lines
				
				1.6 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								pipeline{
							 | 
						||
| 
								 | 
							
								    agent any
							 | 
						||
| 
								 | 
							
								    environment {
							 | 
						||
| 
								 | 
							
								      IMAGE_NAME = "ruoyi-admin"
							 | 
						||
| 
								 | 
							
								      WS = "${WORKSPACE}"
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //定义流水线的加工流程
							 | 
						||
| 
								 | 
							
								    stages {
							 | 
						||
| 
								 | 
							
								        //流水线的所有阶段
							 | 
						||
| 
								 | 
							
								        stage('1.环境检查'){
							 | 
						||
| 
								 | 
							
								            steps {
							 | 
						||
| 
								 | 
							
								               sh 'pwd && ls -alh'
							 | 
						||
| 
								 | 
							
								               sh 'printenv'
							 | 
						||
| 
								 | 
							
								               sh 'docker version'
							 | 
						||
| 
								 | 
							
								               sh 'java -version'
							 | 
						||
| 
								 | 
							
								               sh 'git --version'
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        stage('2.编译'){
							 | 
						||
| 
								 | 
							
								            agent {
							 | 
						||
| 
								 | 
							
								                docker {
							 | 
						||
| 
								 | 
							
								                    image 'maven:3-alpine'
							 | 
						||
| 
								 | 
							
								                    args '-v maven-repository:/root/.m2'
							 | 
						||
| 
								 | 
							
								                 }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            steps {
							 | 
						||
| 
								 | 
							
								               sh 'pwd && ls -alh'
							 | 
						||
| 
								 | 
							
								               sh 'mvn -v'
							 | 
						||
| 
								 | 
							
								               sh 'cd ${WS} && mvn clean package -s "/var/jenkins_home/appconfig/maven/settings.xml" -Dmaven.test.skip=true'
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        stage('3.打包'){
							 | 
						||
| 
								 | 
							
								            steps {
							 | 
						||
| 
								 | 
							
								               sh 'pwd && ls -alh'
							 | 
						||
| 
								 | 
							
								               sh 'echo ${WS}'
							 | 
						||
| 
								 | 
							
								               // sh 'mv ${WS}/${IMAGE_NAME}/target/*.jar ${WS}/${IMAGE_NAME}.jar && pwd && ls -alh && docker build -t ${IMAGE_NAME} .'
							 | 
						||
| 
								 | 
							
								               sh 'docker build -t ${IMAGE_NAME} -f Dockerfile ${WS}/${IMAGE_NAME}/target/'
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        stage('4.部署'){
							 | 
						||
| 
								 | 
							
								            // 删除容器和虚悬镜像
							 | 
						||
| 
								 | 
							
								            steps {
							 | 
						||
| 
								 | 
							
								               sh 'pwd && ls -alh'
							 | 
						||
| 
								 | 
							
								               sh 'docker rm -f ${IMAGE_NAME} || true && docker rmi $(docker images -q -f dangling=true) || true'
							 | 
						||
| 
								 | 
							
								               sh 'docker run -d -p 8888:8080 --name ${IMAGE_NAME} -v /mydata/logs/${IMAGE_NAME}:/logs/${IMAGE_NAME} ${IMAGE_NAME}'
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |