diff --git a/python/deploy.py b/python/deploy.py index 99c75ec..1c37552 100644 --- a/python/deploy.py +++ b/python/deploy.py @@ -8,8 +8,9 @@ BASE = "/opt/fw" APP = f"{BASE}/app" CONF = f"{APP}/fw.conf" STATE = f"{APP}/state.json" -WALLARM_IMAGE = "wallarm/node:6.13.0" -DOCKER_BIN_URL = "https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/docker/binaries/docker-29.2.1.tgz" +WALLARM_IMAGE = os.environ.get("WALLARM_IMAGE", "wallarm/node:6.13.0") +DOCKER_BIN_URL = os.environ.get("DOCKER_BIN_URL", "") +OFFLINE_DIR = f"{BASE}/offline" def run(cmd, timeout=120): return subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=timeout) diff --git a/setup.sh b/setup.sh index f50efd8..f390b86 100644 --- a/setup.sh +++ b/setup.sh @@ -68,30 +68,30 @@ else fi chmod +x "${APP_DIR}/main.py" "${WALLARM_DIR}/deploy.sh" -# ── Install Docker (for container-based deployment) ────────────────── +# ── Install Docker ─────────────────────────────────────────────────── +OFFLINE_DIR="${WALLARM_DIR}/offline" if ! command -v docker >/dev/null 2>&1; then echo -e "${YELLOW}Installing Docker...${NC}" - # Check for offline Docker binary first - if [ -f "${WALLARM_DIR}/offline/docker-29.2.1.tgz" ]; then - echo -e "${YELLOW} Using offline Docker binary...${NC}" - tar -xzf "${WALLARM_DIR}/offline/docker-29.2.1.tgz" -C /usr/local/bin/ - dockerd & - sleep 2 + if [ -f "${OFFLINE_DIR}/docker-29.2.1.tgz" ]; then + echo -e "${GREEN} Using offline binary${NC}" + tar -xzf "${OFFLINE_DIR}/docker-29.2.1.tgz" -C /usr/local/bin/ + dockerd &>/dev/null & sleep 2 + elif [ -n "${DOCKER_BIN_URL:-}" ] && [ -f "${OFFLINE_DIR}/docker.tgz" ]; then + tar -xzf "${OFFLINE_DIR}/docker.tgz" -C /usr/local/bin/ + dockerd &>/dev/null & sleep 2 elif command -v apt-get >/dev/null 2>&1; then apt-get install -y -qq docker.io 2>/dev/null elif command -v yum >/dev/null 2>&1; then yum install -y -q docker 2>/dev/null - elif command -v dnf >/dev/null 2>&1; then - dnf install -y -q docker 2>/dev/null fi systemctl enable docker 2>/dev/null || true systemctl start docker 2>/dev/null || true fi -# ── Pre-cache Wallarm Docker image if offline file exists ───────────── -if [ -f "${WALLARM_DIR}/offline/wallarm-node-6.13.0.tar" ]; then +# ── Pre-cache Wallarm image ─────────────────────────────────────────── +if [ -f "${OFFLINE_DIR}/wallarm-node.tar" ]; then echo -e "${YELLOW}Loading offline Wallarm image...${NC}" - docker load -i "${WALLARM_DIR}/offline/wallarm-node-6.13.0.tar" 2>/dev/null || true + docker load -i "${OFFLINE_DIR}/wallarm-node.tar" 2>/dev/null || true fi echo