feat: metric e2e 启动服务中判断是否当前服务器存在可用GPU,如无则跳过 test-gpu-node 容器创建和安装包的测试;

refs #29
This commit is contained in:
sundapeng.sdp
2025-10-20 15:30:07 +08:00
parent 299765ed40
commit c4582c99bc
3 changed files with 116 additions and 14 deletions

View File

@@ -59,18 +59,40 @@ echo "1. 初始化目录结构..."
bash "$SCRIPT_DIR/init-directories.sh"
echo ""
echo "2. 检查 Docker 镜像..."
echo "2. 检测GPU环境..."
# 检测GPU环境
if bash "$SCRIPT_DIR/check-gpu.sh"; then
echo "GPU环境可用,将启动GPU节点"
GPU_AVAILABLE=true
else
echo "GPU环境不可用,跳过GPU节点"
GPU_AVAILABLE=false
fi
echo ""
echo "3. 检查 Docker 镜像..."
# 检查必要的镜像是否存在
IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest" "argus-metric-test-node:latest" "argus-metric-test-gpu-node:latest")
missing_images=()
BASE_IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest" "argus-metric-test-node:latest")
GPU_IMAGES=("argus-metric-test-gpu-node:latest")
for image in "${IMAGES[@]}"; do
# 先检查基础镜像
missing_images=()
for image in "${BASE_IMAGES[@]}"; do
if ! docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${image}$"; then
missing_images+=("$image")
fi
done
# 检查GPU镜像(如果GPU环境可用)
if [ "$GPU_AVAILABLE" = true ]; then
for image in "${GPU_IMAGES[@]}"; do
if ! docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${image}$"; then
missing_images+=("$image")
fi
done
fi
if [ ${#missing_images[@]} -gt 0 ]; then
echo "以下镜像缺失,请先运行 build/build_images.sh 构建镜像:"
for image in "${missing_images[@]}"; do
@@ -85,10 +107,17 @@ else
fi
echo ""
echo "3. 启动基础服务..."
echo "4. 启动基础服务..."
cd "$TEST_DIR"
# 启动除GPU节点外的所有服务
docker compose up -d ftp prometheus grafana test-node test-gpu-node
# 根据GPU环境决定启动的服务
if [ "$GPU_AVAILABLE" = true ]; then
echo "启动所有服务(包括GPU节点)..."
docker compose up -d ftp prometheus grafana test-node test-gpu-node
else
echo "启动基础服务(跳过GPU节点)..."
docker compose up -d ftp prometheus grafana test-node
fi
echo ""
echo "4. 等待服务启动..."