parent
8fbe107ac9
commit
e1b19c04b0
2
src/metric/tests/.gitignore
vendored
2
src/metric/tests/.gitignore
vendored
@ -1,7 +1,7 @@
|
|||||||
.env
|
.env
|
||||||
data/
|
data/
|
||||||
images-cache/
|
images-cache/
|
||||||
|
private-test-node/
|
||||||
*.tar
|
*.tar
|
||||||
*.log
|
*.log
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: argus-debug-net
|
||||||
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
ftp:
|
ftp:
|
||||||
build:
|
build:
|
||||||
@ -23,7 +28,8 @@ services:
|
|||||||
- ${DATA_ROOT:-./data}/ftp:/private/argus/ftp
|
- ${DATA_ROOT:-./data}/ftp:/private/argus/ftp
|
||||||
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
||||||
networks:
|
networks:
|
||||||
- argus-network
|
default:
|
||||||
|
ipv4_address: 172.30.0.40
|
||||||
logging:
|
logging:
|
||||||
driver: "json-file"
|
driver: "json-file"
|
||||||
options:
|
options:
|
||||||
@ -51,7 +57,8 @@ services:
|
|||||||
- ${DATA_ROOT:-./data}/prometheus:/private/argus/metric/prometheus
|
- ${DATA_ROOT:-./data}/prometheus:/private/argus/metric/prometheus
|
||||||
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
||||||
networks:
|
networks:
|
||||||
- argus-network
|
default:
|
||||||
|
ipv4_address: 172.30.0.41
|
||||||
logging:
|
logging:
|
||||||
driver: "json-file"
|
driver: "json-file"
|
||||||
options:
|
options:
|
||||||
@ -81,7 +88,8 @@ services:
|
|||||||
- ${DATA_ROOT:-./data}/grafana:/private/argus/metric/grafana
|
- ${DATA_ROOT:-./data}/grafana:/private/argus/metric/grafana
|
||||||
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
- ${DATA_ROOT:-./data}/etc:/private/argus/etc
|
||||||
networks:
|
networks:
|
||||||
- argus-network
|
default:
|
||||||
|
ipv4_address: 172.30.0.42
|
||||||
depends_on:
|
depends_on:
|
||||||
- prometheus
|
- prometheus
|
||||||
logging:
|
logging:
|
||||||
@ -90,16 +98,27 @@ services:
|
|||||||
max-size: "10m"
|
max-size: "10m"
|
||||||
max-file: "3"
|
max-file: "3"
|
||||||
|
|
||||||
networks:
|
test-node:
|
||||||
argus-network:
|
image: ubuntu:22.04
|
||||||
driver: bridge
|
container_name: argus-metric-test-node
|
||||||
name: argus-network
|
hostname: test-metric-node-001
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- ftp
|
||||||
|
- prometheus
|
||||||
|
environment:
|
||||||
|
- FTP_SERVER=${FTP_SERVER:-172.30.0.40}
|
||||||
|
- FTP_USER=${FTP_USER:-ftpuser}
|
||||||
|
- FTP_PASSWORD=${FTP_PASSWORD:-ZGClab1234!}
|
||||||
|
- FTP_PORT=${FTP_PORT:-21}
|
||||||
volumes:
|
volumes:
|
||||||
ftp_data:
|
- ${DATA_ROOT:-./data}/agent:/private/argus/agent
|
||||||
driver: local
|
command: sleep infinity
|
||||||
prometheus_data:
|
networks:
|
||||||
driver: local
|
default:
|
||||||
grafana_data:
|
ipv4_address: 172.30.0.50
|
||||||
driver: local
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
18
src/metric/tests/scripts/00_e2e_test.sh
Executable file
18
src/metric/tests/scripts/00_e2e_test.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(dirname "$0")"
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Argus Metric E2E Test"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
bash "$SCRIPT_DIR/01_start_services.sh"
|
||||||
|
bash "$SCRIPT_DIR/02_publish_artifact.sh"
|
||||||
|
bash "$SCRIPT_DIR/03_test_node_install.sh"
|
||||||
|
bash "$SCRIPT_DIR/04_verify_install.sh"
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "E2E 测试完成"
|
||||||
|
echo "=========================================="
|
||||||
|
|
19
src/metric/tests/scripts/01_start_services.sh
Executable file
19
src/metric/tests/scripts/01_start_services.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
|
echo "[01] 启动所有服务..."
|
||||||
|
bash "$SCRIPT_DIR/common/start-all.sh"
|
||||||
|
|
||||||
|
echo "[01] 等待服务就绪..."
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
echo "[01] 检查服务状态..."
|
||||||
|
docker ps | grep argus-ftp
|
||||||
|
docker ps | grep argus-prometheus
|
||||||
|
docker ps | grep argus-grafana
|
||||||
|
docker ps | grep argus-metric-test-node
|
||||||
|
|
||||||
|
echo "[01] 所有服务已启动"
|
||||||
|
|
60
src/metric/tests/scripts/02_publish_artifact.sh
Executable file
60
src/metric/tests/scripts/02_publish_artifact.sh
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
TEST_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||||
|
PLUGIN_DIR="$(cd "$SCRIPT_DIR/../../client-plugins/all-in-one-full" && pwd)"
|
||||||
|
|
||||||
|
# 加载 .env
|
||||||
|
if [ -f "$TEST_DIR/.env" ]; then
|
||||||
|
source "$TEST_DIR/.env"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 检测容器挂载目录
|
||||||
|
if docker ps --format '{{.Names}}' | grep -q '^argus-ftp$'; then
|
||||||
|
FTP_MOUNT=$(docker inspect argus-ftp --format '{{range .Mounts}}{{if eq .Destination "/private/argus/ftp"}}{{.Source}}{{end}}{{end}}')
|
||||||
|
OUTPUT_DIR="${FTP_MOUNT}/share"
|
||||||
|
echo "[02] 容器挂载: $OUTPUT_DIR"
|
||||||
|
else
|
||||||
|
OUTPUT_DIR="${DATA_ROOT:-$TEST_DIR/data}/ftp/share"
|
||||||
|
echo "[02] 默认路径: $OUTPUT_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
OWNER="${FTP_UID:-2133}:${FTP_GID:-2015}"
|
||||||
|
|
||||||
|
cd "$PLUGIN_DIR"
|
||||||
|
|
||||||
|
echo "[02] 递增版本号..."
|
||||||
|
bash scripts/version-manager.sh bump minor
|
||||||
|
|
||||||
|
VERSION_FILE="config/VERSION"
|
||||||
|
if [ ! -f "$VERSION_FILE" ]; then
|
||||||
|
echo "[02] 错误: 未找到 $VERSION_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION=$(cat "$VERSION_FILE" | tr -d '[:space:]')
|
||||||
|
echo "[02] 新版本: $VERSION"
|
||||||
|
|
||||||
|
echo "[02] 构建安装包..."
|
||||||
|
bash scripts/package_artifact.sh --force
|
||||||
|
|
||||||
|
echo "[02] 发布到 FTP: $OUTPUT_DIR"
|
||||||
|
sudo bash scripts/publish_artifact.sh "$VERSION" --output-dir "$OUTPUT_DIR" --owner "$OWNER"
|
||||||
|
|
||||||
|
echo "[02] 设置文件权限..."
|
||||||
|
# 设置所有者
|
||||||
|
sudo chown -R "$OWNER" "$OUTPUT_DIR"
|
||||||
|
# 设置目录权限为 755 (rwxr-xr-x)
|
||||||
|
sudo find "$OUTPUT_DIR" -type d -exec chmod 755 {} \;
|
||||||
|
# 设置文件权限为 644 (rw-r--r--)
|
||||||
|
sudo find "$OUTPUT_DIR" -type f -exec chmod 644 {} \;
|
||||||
|
# 特别处理 .sh 文件,给予执行权限 755
|
||||||
|
sudo find "$OUTPUT_DIR" -type f -name "*.sh" -exec chmod 755 {} \;
|
||||||
|
echo "[02] 权限设置完成 (UID:GID=$OWNER, dirs=755, files=644, scripts=755)"
|
||||||
|
|
||||||
|
echo "[02] 发布完成,验证文件..."
|
||||||
|
ls -lh "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
echo "[02] 完成"
|
||||||
|
|
30
src/metric/tests/scripts/03_test_node_install.sh
Executable file
30
src/metric/tests/scripts/03_test_node_install.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
FTP_SERVER="${FTP_SERVER:-172.30.0.40}"
|
||||||
|
FTP_USER="${FTP_USER:-ftpuser}"
|
||||||
|
FTP_PASSWORD="${FTP_PASSWORD:-ZGClab1234!}"
|
||||||
|
FTP_PORT="${FTP_PORT:-21}"
|
||||||
|
|
||||||
|
echo "[03] 进入测试节点执行安装..."
|
||||||
|
|
||||||
|
docker exec argus-metric-test-node bash -c "
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if ! command -v curl &>/dev/null; then
|
||||||
|
echo '[03] curl 未安装,正在安装...'
|
||||||
|
apt-get update && apt-get install -y curl
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
echo '[03] 下载 setup.sh...'
|
||||||
|
curl -u ${FTP_USER}:${FTP_PASSWORD} ftp://${FTP_SERVER}:${FTP_PORT}/setup.sh -o setup.sh
|
||||||
|
|
||||||
|
echo '[03] 执行安装...'
|
||||||
|
chmod +x setup.sh
|
||||||
|
bash setup.sh --server ${FTP_SERVER} --user ${FTP_USER} --password '${FTP_PASSWORD}' --port ${FTP_PORT}
|
||||||
|
|
||||||
|
echo '[03] 安装完成'
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "[03] 完成"
|
96
src/metric/tests/scripts/04_verify_install.sh
Executable file
96
src/metric/tests/scripts/04_verify_install.sh
Executable file
@ -0,0 +1,96 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "[04] 验证安装结果 - 检查监控端口..."
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
# 检查容器是否运行
|
||||||
|
if ! docker ps --format '{{.Names}}' | grep -q '^argus-metric-test-node$'; then
|
||||||
|
echo "错误: 容器 argus-metric-test-node 未运行"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ERRORS=0
|
||||||
|
|
||||||
|
# ==================== 检查监听端口 ====================
|
||||||
|
echo ""
|
||||||
|
echo "[1] 检查监听端口..."
|
||||||
|
echo "----------------------------------------"
|
||||||
|
CHECK_RESULT=$(docker exec argus-metric-test-node bash -c '
|
||||||
|
if command -v netstat >/dev/null 2>&1; then
|
||||||
|
echo "使用 netstat 检查端口:"
|
||||||
|
if netstat -tlnp 2>/dev/null | grep -E ":(9100|9400|2020)"; then
|
||||||
|
echo "✓ 找到监控端口"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "✗ 未找到监控端口 (9100/9400/2020)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif command -v ss >/dev/null 2>&1; then
|
||||||
|
echo "使用 ss 检查端口:"
|
||||||
|
if ss -tlnp 2>/dev/null | grep -E ":(9100|9400|2020)"; then
|
||||||
|
echo "✓ 找到监控端口"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "✗ 未找到监控端口 (9100/9400/2020)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif command -v lsof >/dev/null 2>&1; then
|
||||||
|
echo "使用 lsof 检查端口:"
|
||||||
|
if lsof -i :9100 -i :9400 -i :2020 2>/dev/null | grep LISTEN; then
|
||||||
|
echo "✓ 找到监控端口"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "✗ 未找到监控端口 (9100/9400/2020)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "? 没有可用的端口检查工具 (netstat/ss/lsof),跳过此检查"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
')
|
||||||
|
echo "$CHECK_RESULT"
|
||||||
|
# 只有在明确失败时才计入错误(exit 1),没有工具(exit 0)不算错误
|
||||||
|
if echo "$CHECK_RESULT" | grep -q "✗ 未找到监控端口"; then
|
||||||
|
ERRORS=$((ERRORS + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==================== 测试端口连通性 ====================
|
||||||
|
echo ""
|
||||||
|
echo "[2] 测试端口连通性..."
|
||||||
|
echo "----------------------------------------"
|
||||||
|
docker exec argus-metric-test-node bash -c '
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
FAILED=0
|
||||||
|
for port in 9100 9400 2020; do
|
||||||
|
echo -n "端口 $port: "
|
||||||
|
if curl -s --connect-timeout 2 "http://localhost:$port/metrics" > /dev/null 2>&1; then
|
||||||
|
echo "✓ 可访问 (/metrics)"
|
||||||
|
elif curl -s --connect-timeout 2 "http://localhost:$port/" > /dev/null 2>&1; then
|
||||||
|
echo "✓ 可访问 (根路径)"
|
||||||
|
else
|
||||||
|
echo "✗ 不可访问"
|
||||||
|
FAILED=$((FAILED + 1))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit $FAILED
|
||||||
|
else
|
||||||
|
echo "? curl 不可用,跳过连通性测试"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
' || ERRORS=$((ERRORS + 1))
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
if [ $ERRORS -eq 0 ]; then
|
||||||
|
echo "✓ [04] 验证完成 - 所有端口检查通过"
|
||||||
|
else
|
||||||
|
echo "✗ [04] 验证失败 - 发现 $ERRORS 个问题"
|
||||||
|
echo ""
|
||||||
|
echo "调试建议:"
|
||||||
|
echo " 1. 进入容器检查: docker exec -it argus-metric-test-node bash"
|
||||||
|
echo " 2. 查看进程: docker exec argus-metric-test-node ps aux"
|
||||||
|
echo " 3. 查看日志: docker exec argus-metric-test-node cat /tmp/argus_install.log"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "=========================================="
|
11
src/metric/tests/scripts/05_cleanup.sh
Executable file
11
src/metric/tests/scripts/05_cleanup.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
|
echo "[05] 清理环境..."
|
||||||
|
|
||||||
|
bash "$SCRIPT_DIR/common/stop-all.sh" || true
|
||||||
|
|
||||||
|
echo "[05] 清理完成"
|
||||||
|
|
@ -6,7 +6,8 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
TEST_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
cd "$TEST_DIR"
|
||||||
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo " 路径检查脚本"
|
echo " 路径检查脚本"
|
||||||
@ -18,15 +19,15 @@ echo ""
|
|||||||
|
|
||||||
# 检查配置文件
|
# 检查配置文件
|
||||||
echo "检查配置文件..."
|
echo "检查配置文件..."
|
||||||
if [ -f "$SCRIPT_DIR/docker-compose.yml" ]; then
|
if [ -f "$TEST_DIR/docker-compose.yml" ]; then
|
||||||
echo " ✓ docker-compose.yml 存在"
|
echo " ✓ docker-compose.yml 存在"
|
||||||
else
|
else
|
||||||
echo " ✗ docker-compose.yml 不存在"
|
echo " ✗ docker-compose.yml 不存在"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$SCRIPT_DIR/.env" ]; then
|
if [ -f "$TEST_DIR/.env" ]; then
|
||||||
echo " ✓ .env 存在"
|
echo " ✓ .env 存在"
|
||||||
elif [ -f "$SCRIPT_DIR/env.example" ]; then
|
elif [ -f "$TEST_DIR/env.example" ]; then
|
||||||
echo " ⚠ .env 不存在,但 env.example 存在"
|
echo " ⚠ .env 不存在,但 env.example 存在"
|
||||||
else
|
else
|
||||||
echo " ✗ .env 和 env.example 都不存在"
|
echo " ✗ .env 和 env.example 都不存在"
|
@ -6,7 +6,8 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
TEST_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
cd "$TEST_DIR"
|
||||||
|
|
||||||
# 加载 .env 文件(如果存在)
|
# 加载 .env 文件(如果存在)
|
||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
@ -21,7 +22,7 @@ PROMETHEUS_UID=${PROMETHEUS_UID:-2133}
|
|||||||
PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
|
PROMETHEUS_GID=${PROMETHEUS_GID:-2015}
|
||||||
GRAFANA_UID=${GRAFANA_UID:-2133}
|
GRAFANA_UID=${GRAFANA_UID:-2133}
|
||||||
GRAFANA_GID=${GRAFANA_GID:-2015}
|
GRAFANA_GID=${GRAFANA_GID:-2015}
|
||||||
DATA_ROOT=${DATA_ROOT:-./data}
|
DATA_ROOT=${DATA_ROOT:-$TEST_DIR/data}
|
||||||
|
|
||||||
echo "开始初始化目录结构..."
|
echo "开始初始化目录结构..."
|
||||||
echo "数据目录: ${DATA_ROOT}"
|
echo "数据目录: ${DATA_ROOT}"
|
@ -6,7 +6,8 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
TEST_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
cd "$TEST_DIR"
|
||||||
|
|
||||||
# 检测 docker-compose 命令
|
# 检测 docker-compose 命令
|
||||||
if command -v docker-compose &> /dev/null; then
|
if command -v docker-compose &> /dev/null; then
|
||||||
@ -19,7 +20,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 镜像缓存目录
|
# 镜像缓存目录
|
||||||
IMAGE_CACHE_DIR="./images-cache"
|
IMAGE_CACHE_DIR="$TEST_DIR/images-cache"
|
||||||
mkdir -p "$IMAGE_CACHE_DIR"
|
mkdir -p "$IMAGE_CACHE_DIR"
|
||||||
|
|
||||||
# 定义镜像列表
|
# 定义镜像列表
|
@ -6,13 +6,14 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
TEST_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
cd "$TEST_DIR"
|
||||||
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo " Argus Metrics 一键启动脚本"
|
echo " Argus Metrics 一键启动脚本"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo ""
|
echo ""
|
||||||
echo "当前工作目录: $SCRIPT_DIR"
|
echo "当前工作目录: $TEST_DIR"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 检查 Docker 和 Docker Compose
|
# 检查 Docker 和 Docker Compose
|
||||||
@ -22,7 +23,7 @@ if ! command -v docker &> /dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 检测 docker-compose 命令(兼容新旧版本)
|
# 检测 docker-compose 命令(兼容新旧版本)
|
||||||
COMPOSE_FILE="$SCRIPT_DIR/docker-compose.yml"
|
COMPOSE_FILE="$TEST_DIR/docker-compose.yml"
|
||||||
if command -v docker-compose &> /dev/null; then
|
if command -v docker-compose &> /dev/null; then
|
||||||
DOCKER_COMPOSE="docker-compose -f $COMPOSE_FILE"
|
DOCKER_COMPOSE="docker-compose -f $COMPOSE_FILE"
|
||||||
echo "使用: docker-compose"
|
echo "使用: docker-compose"
|
||||||
@ -65,6 +66,18 @@ fi
|
|||||||
# 加载环境变量
|
# 加载环境变量
|
||||||
source .env
|
source .env
|
||||||
|
|
||||||
|
# 检查并创建 Docker 网络
|
||||||
|
echo "检查 Docker 网络..."
|
||||||
|
NETWORK_NAME="argus-debug-net"
|
||||||
|
if docker network inspect "$NETWORK_NAME" >/dev/null 2>&1; then
|
||||||
|
echo "网络 $NETWORK_NAME 已存在"
|
||||||
|
else
|
||||||
|
echo "创建网络 $NETWORK_NAME..."
|
||||||
|
docker network create --driver bridge --subnet 172.30.0.0/16 "$NETWORK_NAME"
|
||||||
|
echo "网络创建成功"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
echo "1. 初始化目录结构..."
|
echo "1. 初始化目录结构..."
|
||||||
bash "$SCRIPT_DIR/init-directories.sh"
|
bash "$SCRIPT_DIR/init-directories.sh"
|
||||||
|
|
||||||
@ -72,7 +85,7 @@ echo ""
|
|||||||
echo "2. 准备 Docker 镜像..."
|
echo "2. 准备 Docker 镜像..."
|
||||||
|
|
||||||
# 检查镜像是否存在
|
# 检查镜像是否存在
|
||||||
IMAGE_CACHE_DIR="./images-cache"
|
IMAGE_CACHE_DIR="$TEST_DIR/images-cache"
|
||||||
IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest")
|
IMAGES=("argus-metric-ftp:latest" "argus-metric-prometheus:latest" "argus-metric-grafana:latest")
|
||||||
all_images_exist=true
|
all_images_exist=true
|
||||||
|
|
||||||
@ -128,7 +141,7 @@ else
|
|||||||
echo ""
|
echo ""
|
||||||
echo "部分镜像缺失,开始构建..."
|
echo "部分镜像缺失,开始构建..."
|
||||||
echo "工作目录: $(pwd)"
|
echo "工作目录: $(pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
cd "$TEST_DIR"
|
||||||
$DOCKER_COMPOSE build
|
$DOCKER_COMPOSE build
|
||||||
|
|
||||||
# 询问是否保存镜像
|
# 询问是否保存镜像
|
@ -5,10 +5,11 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$SCRIPT_DIR"
|
TEST_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||||
|
cd "$TEST_DIR"
|
||||||
|
|
||||||
# 检测 docker-compose 命令(兼容新旧版本)
|
# 检测 docker-compose 命令(兼容新旧版本)
|
||||||
COMPOSE_FILE="$SCRIPT_DIR/docker-compose.yml"
|
COMPOSE_FILE="$TEST_DIR/docker-compose.yml"
|
||||||
if command -v docker-compose &> /dev/null; then
|
if command -v docker-compose &> /dev/null; then
|
||||||
DOCKER_COMPOSE="docker-compose -f $COMPOSE_FILE"
|
DOCKER_COMPOSE="docker-compose -f $COMPOSE_FILE"
|
||||||
elif docker compose version &> /dev/null 2>&1; then
|
elif docker compose version &> /dev/null 2>&1; then
|
Loading…
x
Reference in New Issue
Block a user