欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录一下自己顺便解放的双手

程序员文章站 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的应用就大大解放了双手