调整生成脚本

develop
old易 2024-06-17 13:25:56 +08:00
parent eb24091989
commit 14144129d8
1 changed files with 37 additions and 22 deletions

View File

@ -1,24 +1,39 @@
#! /bin/bash #!/bin/bash
# 设置Docker镜像的仓库名和标签前缀
echo "pcnewcollage-api..." REPO_NAME="newgaokao"
sleep 3 TAG_PREFIX="build_"
docker stop pcnewcollage-api
sleep 2 # 获取当前时间戳作为标签后缀
docker rm pcnewcollage-api TIMESTAMP=$(date +%Y%m%d%H%M%S)
TAG="${REPO_NAME}:${TAG_PREFIX}${TIMESTAMP}"
docker rmi pcnewcollage-api CONTAINER_NAME="${REPO_NAME}_container_${TIMESTAMP}"
echo ""
echo "pcnewcollage-api packing..." # 尝试构建新的Docker镜像
sleep 3 docker build -t "${TAG}" . && {
# 如果构建成功,则停止并删除具有相同前缀的旧容器
docker build -t pcnewcollage-api . echo "Stopping and removing old containers..."
echo "" docker ps -aqf "name=${REPO_NAME}_container_*" | xargs docker stop
docker ps -aqf "name=${REPO_NAME}_container_*" | xargs docker rm
echo "pcnewcollage-api running..."
sleep 3 # 删除具有相同前缀的旧镜像(排除最新的)
echo "Removing old images..."
docker run \ 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 \ -p 8082:8082 \
--restart unless-stopped \ --restart unless-stopped \
--name pcnewcollage-api \ --name "${CONTAINER_NAME}" \
-d pcnewcollage-api -d "${TAG}"
# 显示正在运行的容器信息
echo "Container started successfully: ${CONTAINER_NAME}"
docker ps | grep "${CONTAINER_NAME}"
} || {
# 如果构建失败,则打印错误信息
echo "Failed to build the Docker image."
}