Add customer service API deployment support

This commit is contained in:
2026-06-10 10:48:26 +08:00
parent 0594fc9f8c
commit e589073311
8 changed files with 777 additions and 62 deletions

View File

@@ -0,0 +1,71 @@
#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="${PROJECT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
ROOTLESS_RUNTIME_DIR="${ROOTLESS_RUNTIME_DIR:-$HOME/.docker/run}"
DOCKER_SOCK="${DOCKER_SOCK:-$ROOTLESS_RUNTIME_DIR/docker.sock}"
DOCKER_LOG="${DOCKER_LOG:-$HOME/.docker/dockerd-rootless.log}"
ensure_docker() {
mkdir -p "$ROOTLESS_RUNTIME_DIR"
chmod 700 "$ROOTLESS_RUNTIME_DIR"
if DOCKER_HOST="unix://$DOCKER_SOCK" docker info >/dev/null 2>&1; then
return 0
fi
if ! pgrep -u "$(id -u)" -f "dockerd-rootless.sh.*$DOCKER_SOCK" >/dev/null 2>&1; then
: > "$DOCKER_LOG"
setsid sh -c \
"export XDG_RUNTIME_DIR='$ROOTLESS_RUNTIME_DIR'; exec dockerd-rootless.sh --iptables=false --host=unix://$DOCKER_SOCK >> '$DOCKER_LOG' 2>&1" \
< /dev/null >/dev/null 2>&1 &
fi
for _ in $(seq 1 45); do
if DOCKER_HOST="unix://$DOCKER_SOCK" docker info >/dev/null 2>&1; then
return 0
fi
sleep 1
done
echo "Docker rootless daemon did not become ready. Last log lines:" >&2
tail -n 80 "$DOCKER_LOG" >&2 || true
return 1
}
compose() {
ensure_docker
export DOCKER_HOST="unix://$DOCKER_SOCK"
cd "$PROJECT_DIR"
docker compose "$@"
}
case "${1:-up}" in
start)
ensure_docker
;;
up)
compose up -d
;;
build-up)
compose up -d --build
;;
ps)
compose ps
;;
logs)
shift
compose logs "${@:-api}"
;;
down)
compose down
;;
health)
curl -fsS http://127.0.0.1:${API_PORT:-8102}/v1/admin/health
echo
;;
*)
echo "Usage: $0 {start|up|build-up|ps|logs [service]|down|health}" >&2
exit 2
;;
esac