51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
MODULE_ROOT="$(cd "$TEST_ROOT/.." && pwd)"
|
|
PRIVATE_ROOT="$TEST_ROOT/private"
|
|
TMP_ROOT="$TEST_ROOT/tmp"
|
|
DNS_ROOT="$PRIVATE_ROOT/argus/etc"
|
|
BIND_UPDATE_SCRIPT_SRC="$(cd "$MODULE_ROOT/../bind" && pwd)/build/update-dns.sh"
|
|
BIND_UPDATE_SCRIPT_DEST="$DNS_ROOT/update-dns.sh"
|
|
|
|
mkdir -p "$PRIVATE_ROOT/argus/master"
|
|
mkdir -p "$PRIVATE_ROOT/argus/metric/prometheus"
|
|
mkdir -p "$TMP_ROOT"
|
|
mkdir -p "$DNS_ROOT"
|
|
|
|
# 确保上一次运行留下的容器/数据被清理
|
|
compose() {
|
|
if docker compose version >/dev/null 2>&1; then
|
|
docker compose "$@"
|
|
else
|
|
docker-compose "$@"
|
|
fi
|
|
}
|
|
|
|
pushd "$TEST_ROOT" >/dev/null
|
|
compose down --remove-orphans || true
|
|
popd >/dev/null
|
|
|
|
rm -rf "$TMP_ROOT" "$PRIVATE_ROOT"
|
|
mkdir -p "$PRIVATE_ROOT/argus/master"
|
|
mkdir -p "$PRIVATE_ROOT/argus/metric/prometheus"
|
|
mkdir -p "$TMP_ROOT"
|
|
mkdir -p "$DNS_ROOT"
|
|
|
|
# 中文提示:将 bind 模块自带的 update-dns.sh 下发到共享目录,模拟实际环境
|
|
if [[ -f "$BIND_UPDATE_SCRIPT_SRC" ]]; then
|
|
cp "$BIND_UPDATE_SCRIPT_SRC" "$BIND_UPDATE_SCRIPT_DEST"
|
|
chmod +x "$BIND_UPDATE_SCRIPT_DEST"
|
|
else
|
|
echo "[WARN] bind update script missing at $BIND_UPDATE_SCRIPT_SRC"
|
|
fi
|
|
|
|
pushd "$TEST_ROOT" >/dev/null
|
|
compose down --remove-orphans || true
|
|
MASTER_IMAGE_TAG="${MASTER_IMAGE_TAG:-argus-master:dev}" compose up -d
|
|
popd >/dev/null
|
|
|
|
echo "[INFO] Master container is up on http://localhost:31300"
|