jenkins 部署 spring_cloud服务 二
- 问题,当微服务的包比较少的时候 可以 直接指定 绝对名字来实现 打包,但是如果多了 就会出现脚本重复利用率地下,这个问题,所以我这个是稍微提高了一下重复利用率
- ** 实际操作**
![在这里插入图片描述](https://img-blog.csdnimg.cn/e3e692f88d1b4d8e9cac3a4817df04a6.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/af7add2310a24c6a862ae130fae5db02.png)
- 中间用到变量
canantong-auth,canantong-gateway,canantong-file,canantong-cms,canantong-trace,canantong-risk,canantong-alarm,canantong-intelligent,canantong-supervision,canantong-training,canantong-prevention,canantong-sampling,canantong-admin
auth,gateway,file,cms,trace,risk,alarm,intelligent,supervision,training,prevention,sampling,admin
#!/bin/bash
echo $jar_name > docker_container.txt
IFS=$','
j=0
i=1
for line in `cat ./docker_container.txt`
do
let j=i++
echo "第'$j'次获取"
echo $line
if [ ${line} == canantong-auth ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-auth.jar root@$server:/root/$line
echo "auth 打包完成"
elif [ ${line} == canantong-gateway ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-gateway.jar root@$server:/root/$line
echo "gateway 打包完成"
elif [ ${line} == canantong-file ]; then
cd $WORKSPACE/canantong-base/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/canantong-base/$line/target/canantong-file.jar root@$server:/root/$line
echo "file 打包完成"
elif [ ${line} == canantong-cms ]; then
cd $WORKSPACE/canantong-base/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/canantong-base/$line/target/canantong-cms.jar root@$server:/root/$line
echo "cms 打包完成"
elif [ ${line} == canantong-trace ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-trace-3.5.1.jar root@$server:/root/$line
echo "trace 打包完成"
elif [ ${line} == canantong-risk ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-risk.jar root@$server:/root/$line
echo "risk 打包完成"
elif [ ${line} == canantong-alarm ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-alarm.jar root@$server:/root/$line
echo "alarm 打包完成"
elif [ ${line} == canantong-intelligent ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-intelligent.jar root@$server:/root/$line
echo "intelligent 打包完成"
elif [ ${line} == canantong-supervision ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-supervision.jar root@$server:/root/$line
echo "supervision 打包完成"
elif [ ${line} == canantong-training ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-training-3.5.1.jar root@$server:/root/$line
echo "training 打包完成"
elif [ ${line} == canantong-prevention ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-prevention-3.5.1.jar root@$server:/root/$line
echo "prevention 打包完成"
elif [ ${line} == canantong-sampling ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-sampling-3.5.1.jar root@$server:/root/$line
echo "sampling 打包完成"
elif [ ${line} == canantong-admin ]; then
cd $WORKSPACE/$line && /app/apache-maven-3.6.3/bin/mvn install package -Dmaven.test.skip=true -P dev && echo "$line is successfully packaged"
rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-admin-2.7.2-dev.jar root@$server:/root/$line
echo "admin 打包完成"
else
echo "${line}: 打包失败,请重新检查,再次打包"
fi
done
function ssh_root (){
ssh -t root@$server<<EOT
docker stop $1 && docker rm $1 && docker volume rm docker-compose_${1}_logs && docker rmi canantong-${1}
cd /root/docker-compose/ && docker-compose up -d canantong_$1
exit
EOT
}
echo $container_name > container-name.txt
IFS=$' '
a=0
b=0
for ceshi in `cat ./container-name.txt`
do
let a=b++
echo "第'$b'次获取"
echo $ceshi
if [ ${ceshi} == auth ]; then
ssh_root $ceshi
echo "auth 执行成功"
elif [ ${ceshi} == gateway ]; then
ssh_root $ceshi
echo "gateway 执行成功"
elif [ ${ceshi} == file ]; then
ssh_root $ceshi
echo "file 执行成功"
elif [ ${ceshi} == cms ]; then
ssh_root $ceshi
echo "cms 执行成功"
elif [ ${ceshi} == trace ]; then
ssh_root $ceshi
echo "trace 执行成功"
elif [ ${ceshi} == risk ]; then
ssh_root $ceshi
echo "risk 执行成功"
elif [ ${ceshi} == alarm ]; then
ssh_root $ceshi
echo "alarm 执行成功"
elif [ ${ceshi} == intelligent ]; then
ssh_root $ceshi
echo "intelligent 执行成功"
elif [ ${ceshi} == supervision ]; then
ssh_root $ceshi
echo "supervision 执行成功"
elif [ ${ceshi} == training ]; then
ssh_root $ceshi
echo "training 执行成功"
elif [ ${ceshi} == prevention ]; then
ssh_root $ceshi
echo "prevention 执行成功"
elif [ ${ceshi} == sampling ]; then
ssh_root $ceshi
echo "sampling 执行成功"
elif [ ${ceshi} == admin ]; then
ssh_root $ceshi
echo "admin 执行成功"
else
echo "$ceshi执行失败,请重新执行"
fi
done