Skip to content
章节导航

Docker 自动部署脚本

🕒 Published at: a few seconds ago

Docker 自动部署脚本

Ps:需要将上述的脚本、Dockerfile文件和jar包放在同一路径下,然后执行自动脚本即可自动部署项目,如果项目有更新删除jar包重新上传再执行自动话脚本即可。
shell
#源算法路径 (此处指定到要部署的算法包所在文件夹即可)
SOURCE_PATH=/usr/lv/algorithm/demo
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=demo
#版本号
TAG=latest
#容器映射出来的端口号
SERVER_PORT=5271
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME:$TAG" | awk '{print $3}')
#这里是容器是否已经存在的判断,如果存在就先stop容器再rm容器
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME, CID-$CID"
  docker stop $CID
  docker rm $CID
fi
#构建docker镜像,同样做是否存在的判断
if [ -n "$IID" ]; then
  echo "存在$SERVER_NAME:$TAG镜像,IID=$IID"
  docker rmi $IID
else
  echo "不存在$SERVER_NAME:$TAG镜像,开始构建镜像"
  cd $SOURCE_PATH
  docker build -t $SERVER_NAME:$TAG .
fi
# 运行docker容器
docker run -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone:ro --name $SERVER_NAME -d -p $SERVER_PORT:$SERVER_PORT $SERVER_NAME:$TAG
echo "$SERVER_NAME容器创建完成"

 
SOURCE_PATH=/usr/lv/algorithm/demo
SERVER_NAME=demo
TAG=latest
SERVER_PORT=5002
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
IID=$(docker images | grep "$SERVER_NAME:$TAG" | awk '{print $3}')

if [ -n "$CID" ]; then
  echo "Exists$SERVER_NAME, CID-$CID"
  docker stop $CID
  docker rm $CID
fi
if [ -n "$IID" ]; then
  echo " Exists $SERVER_NAME:$TAG image,IID=$IID"
  docker rmi $IID
else
  echo " No $SERVER_NAME:$TAG image exists. Start building the image. "
  cd $SOURCE_PATH
  docker build -t $SERVER_NAME:$TAG .
fi 

docker run -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone:ro 
--name $SERVER_NAME -d -p $SERVER_PORT:$SERVER_PORT $SERVER_NAME:$TAG
echo "$SERVER_NAME container creation complete"

version: '3'

services:
  service-c:
    image: 172.31.41.119:5000/gdal_crop:v2
    ports:
     - 5002: 5000
    networks :
     - counter-net
    volumes :
     - type: volume
       source: E:/Tomcat/webapps/ILCSData/PAMC_Chain/Step1
       target: /GDAL_Docker_Clip/Results
    restart: always
    hostname: Image Matching

  service-a:
    image: 172.31.41.119:5000/lcc_pca_kmeans:v8
    depends_on:
      - service-c
    ports:
     - 5008: 5000
    networks :
     - counter-net
    volumes :
     - type: volume
       source: E:/Tomcat/webapps/ILCSData/PAMC_Chain/Step2
       target: /Docker_Python_PCA_KMeans/Results
    restart: always
    hostname: Change Detection

  service-b:
    image: 172.31.41.119:5000/r_shiny-ebimage:v20
    depends_on:
      - service-a
    ports:
     - 5020: 5000
    networks :
     - counter-net
    volumes :
     - type: volume
       source: E:/Tomcat//webapps/ILCSData/PAMC_Chain/Step3
       target: /Docker_R_EBImage/Results
    restart: always
    hostname: Pass Filter