60 lines
1.8 KiB
Bash
Executable File
60 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "[ERROR] docker not found"
|
|
exit 1
|
|
fi
|
|
|
|
if ! docker compose version >/dev/null 2>&1; then
|
|
echo "[ERROR] docker compose not available"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f .env.center ]; then
|
|
cp .env.center.example .env.center
|
|
echo "[INFO] .env.center was missing; template created at .env.center"
|
|
fi
|
|
|
|
# hard split: center project name + dedicated compose/env file
|
|
PROJECT_NAME="video-worker-center"
|
|
COMPOSE_FILE="docker-compose.center-dispatch.yml"
|
|
|
|
EDGE_PORT=$(grep '^EDGE_DISPATCH_PORT=' .env.center | tail -n1 | cut -d'=' -f2- || true)
|
|
EDGE_PORT="${EDGE_PORT:-8020}"
|
|
|
|
# one-click defaults for pulling latest code at build time
|
|
DEFAULT_GIT_REPO_URL=""
|
|
if command -v git >/dev/null 2>&1; then
|
|
DEFAULT_GIT_REPO_URL="$(git config --get remote.origin.url || true)"
|
|
fi
|
|
|
|
export AUTO_PULL_LATEST="${AUTO_PULL_LATEST:-true}"
|
|
export GIT_REPO_URL="${GIT_REPO_URL:-$DEFAULT_GIT_REPO_URL}"
|
|
export GIT_BRANCH="${GIT_BRANCH:-master}"
|
|
export GIT_CLONE_DEPTH="${GIT_CLONE_DEPTH:-1}"
|
|
export GIT_PROJECT_SUBDIR="${GIT_PROJECT_SUBDIR:-video_worker}"
|
|
|
|
if [ "${AUTO_PULL_LATEST}" = "true" ] && [ -z "${GIT_REPO_URL}" ]; then
|
|
echo "[ERROR] AUTO_PULL_LATEST=true but GIT_REPO_URL is empty"
|
|
echo "[INFO] set GIT_REPO_URL in .env.center or export it before running"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[INFO] AUTO_PULL_LATEST=${AUTO_PULL_LATEST}"
|
|
echo "[INFO] GIT_REPO_URL=${GIT_REPO_URL}"
|
|
echo "[INFO] GIT_BRANCH=${GIT_BRANCH}"
|
|
|
|
docker compose \
|
|
--project-name "$PROJECT_NAME" \
|
|
--env-file .env.center \
|
|
-f "$COMPOSE_FILE" \
|
|
up -d --build
|
|
|
|
echo "[OK] center dispatch service started"
|
|
echo "[INFO] health: curl http://127.0.0.1:${EDGE_PORT}/health"
|
|
echo "[INFO] devices: curl http://127.0.0.1:${EDGE_PORT}/devices"
|