## 需要在Jenkins任务中配置以下参数 #export mysql_ip=mysql server ip or host #export mysql_port=mysql port #export mysql_user=mysql username #export mysql_pwd=mysql password #export PROJ_PATH=project path # Docker镜像名称 export docker_image_name=jeesite4 # Docker容器命名 export docker_container_name=iJeesite4
## 检查系统类型 export os_type=`uname`
## 配置数据库参数 cd$PROJ_PATH/web/bin/docker if [[ "${os_type}" == "Darwin" ]]; then sed -i """s/mysql_ip/${mysql_ip}/g" application-prod.yml sed -i """s/mysql_port/${mysql_port}/g" application-prod.yml sed -i """s/mysql_user/${mysql_user}/g" application-prod.yml sed -i """s/mysql_pwd/${mysql_pwd}/g" application-prod.yml else sed -i "s/mysql_ip/${mysql_ip}/g" application-prod.yml sed -i "s/mysql_port/${mysql_port}/g" application-prod.yml sed -i "s/mysql_user/${mysql_user}/g" application-prod.yml sed -i "s/mysql_pwd/${mysql_pwd}/g" application-prod.yml fi
stage('设定配置文件'){ steps{ sh ''' . ~/.bash_profile export os_type=`uname` cd ${WORKSPACE}/web/bin/docker if [[ "${os_type}" == "Darwin" ]]; then sed -i "" "s/mysql_ip/${mysql_docker_ip}/g" application-prod.yml sed -i "" "s/mysql_port/${mysql_port}/g" application-prod.yml sed -i "" "s/mysql_user/${mysql_user}/g" application-prod.yml sed -i "" "s/mysql_pwd/${mysql_pwd}/g" application-prod.yml else sed -i "s/mysql_ip/${mysql_docker_ip}/g" application-prod.yml sed -i "s/mysql_port/${mysql_port}/g" application-prod.yml sed -i "s/mysql_user/${mysql_user}/g" application-prod.yml sed -i "s/mysql_pwd/${mysql_pwd}/g" application-prod.yml fi ''' } }
stage('Maven 编译'){ steps { sh ''' . ~/.bash_profile cd ${WORKSPACE}/root mvn clean install -Dmaven.test.skip=true cd ${WORKSPACE}/web mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U ''' } }
stage('停止 / 删除 现有Docker Container/Image '){ steps { script{ try{ sh 'docker stop $docker_container_name' }catch(exc){ echo 'The container $docker_container_name does not exist' }
try{ sh 'docker rm $docker_container_name' }catch(exc){ echo 'The container $docker_container_name does not exist' }
try{ sh 'docker rmi $docker_image_name' }catch(exc){ echo 'The docker image $docker_image_name does not exist' } } } }