evalscope_v0.17.0/build-and-run.sh

45 lines
1.2 KiB
Bash

#!/bin/bash
set -euo pipefail
IMAGE_NAME="evalscope"
CONTAINER_NAME="evalscope"
SRC_DIR="evalscope.0.17.0"
echo "📍 当前目录: $(pwd)"
# ======== 1. 停止并删除旧容器 ========
if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "🛑 停止旧容器:$CONTAINER_NAME"
docker stop "$CONTAINER_NAME" || true
echo "🧹 删除旧容器:$CONTAINER_NAME"
docker rm "$CONTAINER_NAME"
fi
# ======== 2. 删除旧镜像 ========
if docker images -a | grep -q "^${IMAGE_NAME}"; then
echo "🗑️ 删除旧镜像:$IMAGE_NAME"
docker rmi -f "$IMAGE_NAME"
fi
# ======== 3. Git 拉取最新代码(当前目录是 git 仓库) ========
if [ -d ".git" ]; then
echo "🔄 拉取当前目录最新源码"
git pull
else
echo "❌ 错误:当前目录不是 git 仓库"
exit 1
fi
# ======== 4. 构建镜像 ========
echo "🔧 开始构建镜像:$IMAGE_NAME"
docker build \
--build-arg http_proxy=http://127.0.0.1:7890 \
--build-arg https_proxy=http://127.0.0.1:7890 \
--network=host \
-t "$IMAGE_NAME" .
# ======== 5. 运行容器 ========
echo "🚀 启动容器:$CONTAINER_NAME"
docker run --rm -p 7900:7900 -p 7901:7901 --name "$CONTAINER_NAME" "$IMAGE_NAME"