diff --git a/src/main/resources/deploy.sh b/src/main/resources/deploy.sh new file mode 100644 index 0000000..229262a --- /dev/null +++ b/src/main/resources/deploy.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# 初始化变量 +export imageName +export imageTag + +while getopts "n:t:" opt +do + case $opt in + n) + imageName=$OPTARG;; + t) + imageTag=$OPTARG;; + ?) + echo "未知参数" + exit 1;; + esac +done + +# 检查是否成功设置了imagesName和imageTag(理论上这一步在这里是多余的,因为我们已经在上面检查了参数数量) +if [ -z "$imageName" ]; then + echo "镜像名称未设置,请检查!" + exit 1 +fi +if [ -z "$imageTag" ]; then + echo "镜像标签未设置,请检查!" + exit 1 +fi + +export image="$imageName:$imageTag" + +if docker images | grep "$image"; then + echo "镜像 $image 已存在,开始删除!" + docker rmi -f $image +else + echo "镜像 $image 不存在,开始创建!" + docker pull "127.0.0.1:16000/$image" + docker tag "127.0.0.1:16000/$image" $image + docker rmi -f "127.0.0.1:16000/$image" +fi + +if docker ps -a -f "name=$imageName" | grep "$imageName"; then + echo "容器 $imageName 已存在,开始删除!" + docker rm -f $imageName +else + echo "容器 $imageName 不存在,开始创建!" +fi + + + +docker run -d \ + --name $imageName \ + --network dev-cloud \ + -v /home/images/deploy/logs/$imageName:/home/logs/$imageName \ + $image +