Unitree_R1_Sanad/docker/build_and_run.sh

38 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# One-shot build + run of SanadR1 in Docker on the R1 backpack.
# Also disables the old conda systemd service so :8001 doesn't collide.
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$HERE"
if [ ! -f .env ]; then
echo "!! docker/.env missing — copy .env.example to .env and set SANAD_GEMINI_API_KEY" >&2
exit 1
fi
# Old conda-based service (if present) would fight for port 8001.
if systemctl list-unit-files 2>/dev/null | grep -q '^sanadr1\.service'; then
echo ">> stopping + disabling the old conda sanadr1.service"
sudo systemctl disable --now sanadr1.service || true
fi
echo ">> building image (CycloneDDS compiles from source — first build is slow)"
docker compose build
echo ">> starting container (host network, auto-restart)"
docker compose up -d
echo ">> waiting for the dashboard..."
for i in $(seq 1 30); do
if curl -fsS http://127.0.0.1:8001/ >/dev/null 2>&1; then
echo ">> UP: dashboard on :8001"
docker compose ps
exit 0
fi
sleep 2
done
echo "!! dashboard did not answer in 60s — check: docker compose logs -f" >&2
docker compose logs --tail=40
exit 1