Docker自动打包脚本

时间:2022-10-12 11:20:38

前言:由于公司升级频繁,手动操作打包耗时较长,所以写了这个自动打包脚本提升工作效率。

因为K8S的yaml都在内网阿里云上所以就没办法写进脚本修改版本了,如果有需要可以自行修改。

#!/bin/bash
#服务路径
servicen="/home/bxyd"
new1="/home/newfile"

#请输入服务名称
read -p "请输入路径服务名称:" name
read -p "请输入对应服务名称:" name1

#请输入版本号
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>请进入阿里云-产品-kubernetes-无状态-找到对应服务查看版本号>>>>>>>>>>>>>>>>>>>>>> \033[0m"
read -p "请输入版本号:" version

#获取新包名称
dl=$(ls /home/newfile/)
new2="/home/newfile/$dl"
new3="/home/bxyd/$name/$dl"

#替换dockerfile包
if [ -f "$new2" ]; then
sed -i "s/#ADD $dl/ADD $dl/" /$servicen/$name/Dockerfile
sed -i "s/#$dl/$dl/" /$servicen/$name/Dockerfile
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改dockerfile成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改dockerfile失败<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi

#删除旧包
if [ -f "$new3" ];then
rm -rf /$servicen/$name/$dl
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>删除旧包成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>删除旧包成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi

##移动新包
if [ -f "$new2" ]; then
mv /$new1/$dl /$servicen/$name/
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>移动新包成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>文件不存在,已退出脚本<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi

#打包上传
cd /$servicen/$name/
docker build -t cr.registry.sd-1.res.sgmc.sgcc.com.cn/dwzyywzt-nari/dwzyywzt-nari:$name1-$version .
if [ $? -eq 0 ];then
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>docker build打包成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>docker build打包失败,已退出 脚本<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi
docker push cr.registry.sd-1.res.sgmc.sgcc.com.cn/dwzyywzt-nari/dwzyywzt-nari:$name1-$version
if [ $? -eq 0 ];then
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>上传仓库成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>上传失败,已退出脚本<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi
##注释dockerfile


if [ -f "$new3" ]; then
sed -i "s/ADD $dl/#ADD $dl/" /$servicen/$name/Dockerfile
sed -i -z "s/$dl/#$dl/3" /$servicen/$name/Dockerfile
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改dockerfile成功<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
else
echo -e "\033[31m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改dockerfile失败<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"
exit 255
fi
echo -e "\033[32m >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>请到阿里云修改版本号<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \033[0m"