脚本判断代码是否修改过,修改则重启对应的docker容器

本文介绍了一种自动化部署策略,通过使用shell脚本和find命令检查特定目录下的文件修改情况,仅重启那些源代码有变动的Docker容器,如ppay_dist、eureka-server等,有效提高了开发效率并减少了不必要的资源消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,大概流程

开发提交 git > jenkins > mvn > 脚本

#利用 find 查找对应目录是否有修改的文件,-name 所有文件 -mmin -1 一分钟 。

#这样开发提交代码,只重新启动修改过代码的容器

#!/bin/bash
#ppay_dist,判断dist目录是否改动,如有,更新dist模块,重启dist容器
dist=`find /var/lib/jenkins/workspace/ppay/dist/src/ -name '*.*' -mmin -1 | wc -l`
if [ "$dist" == "0" ];then
        echo 0
else
        #停止dist分销系统容器
        docker stop ppay_dist
        #删除dist-primary分销系统容器
        docker rm ppay_dist
        #启动新的dist-primary分销系统容器
        docker run --name ppay_dist -v /etc/localtime:/etc/localtime -v /var/lib/jenkins/workspace/ppay/dist/target/dist-0.0.0.1.jar:/dist/dist-0.0.0.1.jar -itd -p 8887:8887 dist-alpine
fi

#ppay_eureka-server,判断eureka-server目录是否改动,如有,更新eureka-server模块,重启eureka-server容器
eureka_server=`find /var/lib/jenkins/workspace/ppay/eureka-server/src/ -name '*.*' -mmin -1 | wc -l`
if [ "$eureka_server" == "0" ];then
        echo 0
else
        #停止eureka-server容器
        docker stop ppay_eureka-server
        #删除eureka-server容器
        docker rm ppay_eureka-server
        #启动新的eureka-server容器
        docker run --name ppay_eureka-server -v /etc/localtime:/etc/localtime -v /var/lib/jenkins/workspace/ppay/eureka-server/target/eureka-server-0.0.1-SNAPSHOT.jar:/eureka-server/eureka-server-0.0.1-SNAPSHOT.jar -itd -p 8761:8761 eureka-server-alpine
fi

#ppay_eureka-provider,判断eureka-provider目录是否改动,如有,更新eureka-provider模块,重启eureka-provider容器
eureka_provider=`find /var/lib/jenkins/workspace/ppay/eureka-provider/src/ -name '*.*' -mmin -1 | wc -l`
if [ "$eureka_provider" == "0" ];then
        echo 0
else
        #停止eureka-provider容器
        docker stop ppay_eureka-provider
        #删除eureka-provider容器
        docker rm ppay_eureka-provider
        #启动新的eureka-provider容器
        docker run --name ppay_eureka-provider -v /etc/localtime:/etc/localtime -v /var/lib/jenkins/workspace/ppay/eureka-provider/target/eureka-provider-0.0.1-SNAPSHOT.jar:/eureka-provider/eureka-provider-0.0.1-SNAPSHOT.jar -itd -p 9999:9999 eureka-provider-alpine
fi

#ppay_eureka-zuul,判断eureka-zuul目录是否改动,如有,更新eureka-zuul模块,重启eureka-zuul容器
eureka_zuul=`find /var/lib/jenkins/workspace/ppay/eureka-zuul/src/ -name '*.*' -mmin -1 | wc -l`
if [ "$eureka_zuul" == "0" ];then
        echo 0
else
        #停止zuul网关
        docker stop ppay_eureka_zuul
        #删除dist-primary分销系统容器
        docker rm ppay_eureka_zuul
        #启动新的dist-primary分销系统容器
        docker run --name ppay_eureka_zuul -v /etc/localtime:/etc/localtime -v /var/lib/jenkins/workspace/ppay/eureka-zuul/target/eureka-zull-0.0.1-SNAPSHOT.jar:/eureka-zuul/eureka-zull-0.0.1-SNAPSHOT.jar -itd -p 8084:8084 eureka-zuul-alpine
fi

#ppay_db,判断db目录是否改动,如有,更新db模块,重启所有容器
db=`find /var/lib/jenkins/workspace/ppay/db/src/ -name '*.*' -mmin -1 | wc -l`
if [ "$db" == "0" ];then
        echo 0
else
        /root/1.sh
fi

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值