alt/bin/infra-check
toki 87c7f9cdee chore(ports): 워크스페이스 포트를 표준화한다
API/worker runtime default와 local infra host publish가 같은 포트 정책을 사용하도록 맞춘다.\n\nagent-task 리뷰 산출물을 함께 남겨 포트 표준화 작업의 검토 이력을 추적할 수 있게 한다.
2026-06-07 13:44:37 +09:00

65 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
compose_file="$root/deployments/local/docker-compose.yml"
database_url="${DATABASE_URL:-postgres://alt:alt@localhost:15430/alt?sslmode=disable}"
redis_url="${REDIS_URL:-redis://localhost:16330/0}"
docker_cmd=""
if command -v docker >/dev/null 2>&1; then
docker_cmd="$(command -v docker)"
elif [ -x "/Applications/Docker.app/Contents/Resources/bin/docker" ]; then
docker_cmd="/Applications/Docker.app/Contents/Resources/bin/docker"
fi
check_default_postgres() {
if [ -z "$docker_cmd" ]; then
echo "postgres: docker is unavailable; cannot inspect local compose service" >&2
return 1
fi
"$docker_cmd" compose -f "$compose_file" exec -T postgres pg_isready -U alt -d alt
}
check_default_redis() {
if [ -z "$docker_cmd" ]; then
echo "redis: docker is unavailable; cannot inspect local compose service" >&2
return 1
fi
test "$("$docker_cmd" compose -f "$compose_file" exec -T redis redis-cli ping)" = "PONG"
}
check_external_postgres() {
if command -v pg_isready >/dev/null 2>&1; then
pg_isready -d "$database_url"
return
fi
echo "postgres: pg_isready is required when DATABASE_URL overrides local compose" >&2
return 1
}
check_external_redis() {
if command -v redis-cli >/dev/null 2>&1; then
test "$(redis-cli -u "$redis_url" ping)" = "PONG"
return
fi
echo "redis: redis-cli is required when REDIS_URL overrides local compose" >&2
return 1
}
echo "ALT infrastructure health"
if [ "$database_url" = "postgres://alt:alt@localhost:15430/alt?sslmode=disable" ]; then
check_default_postgres
else
check_external_postgres
fi
echo "postgres: ok"
if [ "$redis_url" = "redis://localhost:16330/0" ]; then
check_default_redis
else
check_external_redis
fi
echo "redis: ok"