From a8bbf2d6e926f17fc378acac6151f381c3ba2ca6 Mon Sep 17 00:00:00 2001 From: "sundapeng.sdp" Date: Mon, 20 Oct 2025 14:18:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20metric=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=B8=AD=E6=89=80=E9=9C=80=E9=95=9C=E5=83=8F=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E8=9E=8D=E5=90=88=E5=88=B0=20build=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs #29 --- build/build_images.sh | 37 +++++++++++++++++++++++++++++++++++-- build/save_images.sh | 5 +++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/build/build_images.sh b/build/build_images.sh index 562c964..efff851 100755 --- a/build/build_images.sh +++ b/build/build_images.sh @@ -10,6 +10,7 @@ Usage: $0 [OPTIONS] Options: --intranet Use intranet mirror for log/bind builds --master-offline Build master offline image (requires src/master/offline_wheels.tar.gz) + --metric Build metric module images (ftp, prometheus, grafana, test nodes) --no-cache Build all images without using Docker layer cache -h, --help Show this help message @@ -17,13 +18,15 @@ Examples: $0 # Build with default sources $0 --intranet # Build with intranet mirror $0 --master-offline # Additionally build argus-master:offline - $0 --intranet --master-offline + $0 --metric # Additionally build metric module images + $0 --intranet --master-offline --metric EOF } use_intranet=false build_master=true build_master_offline=false +build_metric=true no_cache=false while [[ $# -gt 0 ]]; do @@ -41,6 +44,10 @@ while [[ $# -gt 0 ]]; do build_master_offline=true shift ;; + --metric) + build_metric=true + shift + ;; --no-cache) no_cache=true shift @@ -184,6 +191,33 @@ if [[ "$build_master" == true ]]; then popd >/dev/null fi +if [[ "$build_metric" == true ]]; then + echo "" + echo "Building Metric module images..." + metric_root="$root/src/metric" + pushd "$metric_root/tests" >/dev/null + + # 检查docker-compose.yml是否存在 + if [[ ! -f "docker-compose.yml" ]]; then + echo "docker-compose.yml not found in $metric_root/tests" >&2 + build_failed=true + else + # 构建metric镜像 + if docker compose build --no-cache; then + images_built+=("argus-metric-ftp:latest") + images_built+=("argus-metric-prometheus:latest") + images_built+=("argus-metric-grafana:latest") + images_built+=("argus-metric-test-node:latest") + images_built+=("argus-metric-test-gpu-node:latest") + else + echo "Failed to build metric module images" + build_failed=true + fi + fi + + popd >/dev/null +fi + echo "=======================================" echo "📦 Build Summary" echo "=======================================" @@ -210,7 +244,6 @@ if [[ "$build_master_offline" == true ]]; then echo "" echo "🧳 Master offline wheels 已解压到 $master_offline_dir" fi - echo "" echo "🚀 Next steps:" echo " ./build/save_images.sh --compress # 导出镜像" diff --git a/build/save_images.sh b/build/save_images.sh index 20d9c1b..6ba3756 100755 --- a/build/save_images.sh +++ b/build/save_images.sh @@ -68,6 +68,11 @@ declare -A images=( ["argus-kibana:latest"]="argus-kibana-latest.tar" ["argus-bind9:latest"]="argus-bind9-latest.tar" ["argus-master:offline"]="argus-master-offline.tar" + ["argus-metric-ftp:latest"]="argus-metric-ftp-latest.tar" + ["argus-metric-prometheus:latest"]="argus-metric-prometheus-latest.tar" + ["argus-metric-grafana:latest"]="argus-metric-grafana-latest.tar" + ["argus-metric-test-node:latest"]="argus-metric-test-node-latest.tar" + ["argus-metric-test-gpu-node:latest"]="argus-metric-test-gpu-node-latest.tar" ) # 函数:检查镜像是否存在