#!/bin/bash set -e CONTAINER_NAME="license" IMAGE_NAME="license-server" IMAGE_TAG="1.0.0" GIT_REPO_DIR="/home/ceshi/work/license-server" PORT=13579 FULL_IMAGE_NAME="${IMAGE_NAME}:${IMAGE_TAG}" echo "===> Step 1: 停止并删除老的容器..." docker stop $CONTAINER_NAME 2>/dev/null || true docker rm $CONTAINER_NAME 2>/dev/null || true echo "===> Step 2: 删除旧镜像(如有)..." docker rmi $FULL_IMAGE_NAME 2>/dev/null || true echo "===> Step 3: 拉取最新代码..." cd "$GIT_REPO_DIR" || { echo "❌ 找不到目录 $GIT_REPO_DIR"; exit 1; } git pull || { echo "❌ git pull 失败"; exit 1; } echo "===> Step 4: 构建镜像(不依赖 go.sum)..." docker build -t $FULL_IMAGE_NAME . || { echo "❌ Docker build 失败"; exit 1; } echo "===> Step 5: 启动容器..." docker run -d --name $CONTAINER_NAME -p 127.0.0.1:$PORT:$PORT $FULL_IMAGE_NAME || { echo "❌ Docker 启动失败"; exit 1; } echo "✅ 部署完成,服务运行在端口 $PORT,镜像版本为 $FULL_IMAGE_NAME"