[#29] 整合metric模块端到端测试跑通;整合web/alert模块镜像构建

This commit is contained in:
2025-10-22 12:08:34 +08:00
parent 0b1ccbd87f
commit a1cdd05950
39 changed files with 1167 additions and 158 deletions

View File

@@ -22,6 +22,24 @@ ensure_image() {
}
echo "[INFO] Preparing directories..."
ensure_writable_dir() {
local path="$1"
local parent
parent="$(dirname "$path")"
mkdir -p "$parent" 2>/dev/null || true
mkdir -p "$path" 2>/dev/null || true
if [[ ! -w "$path" ]]; then
docker run --rm -v "$parent:/target" ubuntu:24.04 bash -lc "chown -R $(id -u):$(id -g) /target" >/dev/null 2>&1 || true
fi
mkdir -p "$path"
}
# preflight: make base dirs writable if inherited from root-owned mounts
ensure_writable_dir "$PRIVATE_CORE/argus"
ensure_writable_dir "$PRIVATE_CORE/argus/metric"
ensure_writable_dir "$PRIVATE_CORE/argus/metric/grafana"
ensure_writable_dir "$PRIVATE_CORE/argus/metric/prometheus"
mkdir -p \
"$PRIVATE_CORE/argus/etc" \
"$PRIVATE_CORE/argus/bind" \
@@ -57,6 +75,8 @@ chown -R "${ARGUS_BUILD_UID}:${ARGUS_BUILD_GID}" \
"$PRIVATE_CORE/argus/agent" \
"$PRIVATE_CORE/argus/etc" 2>/dev/null || true
echo "[INFO] Using compose-managed network (auto-created by docker compose)"
echo "[INFO] Distributing update-dns.sh for core services (bind/master/es/kibana)"
BIND_UPDATE_SRC="$REPO_ROOT/src/bind/build/update-dns.sh"
BIND_UPDATE_DEST="$PRIVATE_CORE/argus/etc/update-dns.sh"
@@ -75,8 +95,6 @@ ensure_image "argus-master:latest"
ensure_image "argus-metric-ftp:latest"
ensure_image "argus-metric-prometheus:latest"
ensure_image "argus-metric-grafana:latest"
ensure_image "argus-metric-test-node:latest"
ensure_image "argus-metric-test-gpu-node:latest"
echo "[INFO] Building agent binary..."
pushd "$REPO_ROOT/src/agent" >/dev/null
@@ -91,19 +109,25 @@ fi
echo "$AGENT_BIN" > "$TMP_DIR/agent_binary_path"
# 检测GPU环境
echo "[INFO] 检测GPU环境..."
REQUEST_GPU=${ARGUS_SYS_ENABLE_GPU:-false}
GPU_CHECK_SCRIPT="$REPO_ROOT/src/metric/tests/scripts/common/check-gpu.sh"
if [ -f "$GPU_CHECK_SCRIPT" ]; then
if [[ "$REQUEST_GPU" == "true" ]]; then
echo "[INFO] --enable-gpu 已启用,开始检测GPU环境..."
if [[ -f "$GPU_CHECK_SCRIPT" ]]; then
if bash "$GPU_CHECK_SCRIPT" >/dev/null 2>&1; then
echo "[INFO] GPU环境可用,将启动test-gpu-node容器"
GPU_AVAILABLE=true
echo "[INFO] GPU环境可用,将在 compose 中启用 test-gpu-node"
GPU_AVAILABLE=true
else
echo "[INFO] GPU环境不可用,跳过test-gpu-node容器"
GPU_AVAILABLE=false
echo "[ERROR] 未检测到可用 GPU,但指定了 --enable-gpu" >&2
exit 1
fi
else
echo "[ERROR] 未找到 GPU 检测脚本: $GPU_CHECK_SCRIPT" >&2
exit 1
fi
else
echo "[WARN] 未找到GPU检测脚本: $GPU_CHECK_SCRIPT,跳过GPU检测"
GPU_AVAILABLE=false
GPU_AVAILABLE=false
echo "[INFO] GPU 支持未启用,跳过 GPU 检测"
fi
echo "[INFO] Writing .env with UID/GID and metric configuration"
@@ -112,7 +136,7 @@ ARGUS_BUILD_UID=$ARGUS_BUILD_UID
ARGUS_BUILD_GID=$ARGUS_BUILD_GID
# GPU 配置
GPU_AVAILABLE=$GPU_AVAILABLE
ENABLE_GPU=$GPU_AVAILABLE
# FTP 配置
FTP_PORT=21