记录一下自己顺便解放的双手
程序员文章站
2022-06-12 19:50:01
...
在客户的机器上docker启动的项目,某天更新客户服务器上的代码的时候,同事等的比较着急,也可能老年人比较手残,比较慢,所以想着为了少敲命令少出错的原则,了解了一下shell脚本的简单运用
更新服务镜像只需要简单的一条命令.方便快捷
#platform是容器名称 3是镜像版本
sh update.sh platform 3
或者
,/update.sh platform 3
#先停止容器
docker stop $1
sleep 2
#删除容器
docker rm $1
sleep 2
#下边是写自己的服务的名称,if...elif... fi的应用,非常简单,也解放了双手(^_^)
#前台的时候也可以放到相应的目录下做个挂载,这样打完包之后放到相应的目录
#这样仅仅重启一下相应的容器就可以了
if [ $1 = 'platform' ]
then
cd /root/test/platform
docker build -t platform:v$2 .
sleep 5
docker run -d -p 8090:80 --name platform -v /root/conf/platform/:/etc/nginx/conf.d/ platform:v$2;
echo $1'执行成功!'
elif [ $1 = 'alertcenter' ]
then
cd /root/test/alertcenter
docker build -t alertcenter:v$2 .
sleep 5
docker run -d -p 18080:80 --name alertcenter -v /root/conf/alertcenter:/etc/nginx/conf.d/ alertcenter:v$2;
echo $1'执行成功!'
elif [ $1 = 'alertserver' ]
then
cd /root/test/alertserver
docker build -t alertserver:v$2 .
sleep 5
docker run -d -p 8086:8086 -e rpc.system.url=http://10.21.100.201:8881 -e spring.datasource.url=jdbc:postgresql://10.21.100.201:5432/alert_center -e spring.datasource.username=postgres -e spring.datasource.password=Y4yhl9tbf110 --name alertserver alertserver:v$2;
echo $1'执行成功!'
elif [ $1 = 'platform' ]
then
cd /root/test/platform
docker build -t platform:v$2 .
sleep 5
docker run -d -p 8090:80 --name platform -v /root/conf/platform/:/etc/nginx/conf.d/ platform:v$2;
echo $1'执行成功!'
elif [ $1 = 'shanmeifront' ]
then
cd /root/test/shanmeifront
docker build -t shanmeifront:v$2 .
sleep 5
docker run -d -p 8929:80 --name shanmeifront -v /root/conf/shanmeifront/:/etc/nginx/conf.d/ shanmeifront:v$2
echo $1'执行成功!'
elif [ $1 = 'gisback' ]
then
cd /root/test/gisback
docker build -t gisback:v$2 .
sleep 5
docker run -d -p 9999:9999 --name gisback -e spring.datasource.url=jdbc:postgresql://10.21.100.201:5432/gis_platform kingcgisbackend:7151;
echo $1'执行成功!'
elif [ $1 = 'auth' ]
then
cd /root/test/auth
docker build -t auth:v$2 .
sleep 5
docker run -d -p 8880:8080 -e rpc.system.url=http://10.21.100.201:8881 -e spring.datasource.url=jdbc:postgresql://10.21.100.201:5432/platform --name auth auth:v1;
echo $1'执行成功!'
elif [ $1 = 'system' ]
then
cd /root/test/system
docker build -t system:v$2 .
sleep 5
docker run -d -p 8881:8081 -e spring.datasource.url=jdbc:postgresql://10.21.100.201:5432/platform -e rpc.gateway.url=http://10.21.100.201:8880/auth/oauth/token --name system system:v1p;
echo $1'执行成功!'
else
echo $1'执行失败!'
fi
简单的if…elif…fi的应用就大大解放了双手