diff --git a/New_College.Api/start.sh b/New_College.Api/start.sh index 6429346..b971ac3 100644 --- a/New_College.Api/start.sh +++ b/New_College.Api/start.sh @@ -1,24 +1,39 @@ -#! /bin/bash - -echo "pcnewcollage-api..." -sleep 3 -docker stop pcnewcollage-api -sleep 2 -docker rm pcnewcollage-api - -docker rmi pcnewcollage-api -echo "" -echo "pcnewcollage-api packing..." -sleep 3 - -docker build -t pcnewcollage-api . -echo "" - -echo "pcnewcollage-api running..." -sleep 3 - -docker run \ +#!/bin/bash +# 设置Docker镜像的仓库名和标签前缀 +REPO_NAME="newgaokao" +TAG_PREFIX="build_" + +# 获取当前时间戳作为标签后缀 +TIMESTAMP=$(date +%Y%m%d%H%M%S) +TAG="${REPO_NAME}:${TAG_PREFIX}${TIMESTAMP}" +CONTAINER_NAME="${REPO_NAME}_container_${TIMESTAMP}" + +# 尝试构建新的Docker镜像 +docker build -t "${TAG}" . && { + # 如果构建成功,则停止并删除具有相同前缀的旧容器 + echo "Stopping and removing old containers..." + docker ps -aqf "name=${REPO_NAME}_container_*" | xargs docker stop + docker ps -aqf "name=${REPO_NAME}_container_*" | xargs docker rm + + # 删除具有相同前缀的旧镜像(排除最新的) + echo "Removing old images..." + docker images --format "{{.Repository}}:{{.Tag}}" | grep "${REPO_NAME}:${TAG_PREFIX}" | grep -v "${TAG}" | xargs docker rmi + + # 显示构建完成的镜像信息 + echo "New image built successfully: ${TAG}" + docker images | grep "${TAG}" + + # 启动新的容器(这里只是示例参数,你可能需要根据你的应用进行调整) + echo "Starting new container ${CONTAINER_NAME}..." + docker run \ -p 8082:8082 \ --restart unless-stopped \ - --name pcnewcollage-api \ - -d pcnewcollage-api + --name "${CONTAINER_NAME}" \ + -d "${TAG}" + # 显示正在运行的容器信息 + echo "Container started successfully: ${CONTAINER_NAME}" + docker ps | grep "${CONTAINER_NAME}" +} || { + # 如果构建失败,则打印错误信息 + echo "Failed to build the Docker image." +} \ No newline at end of file