♻️ refactor(script): improve public base URL configuration logic
- .env 파일의 PUBLIC_BASE_URL을 우선 사용하도록 변경 - shell 환경 변수, .env 파일, LAN IP 순으로 PUBLIC_BASE_URL 설정 - LAN IP 감지 실패 시 경고 메시지 수정 - 코드 가독성 향상 및 에러 처리 개선
This commit is contained in:
23
start.sh
23
start.sh
@@ -3,14 +3,27 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
LAN_IP=$(ipconfig getifaddr en0 2>/dev/null || ip -4 addr show 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127\.' | head -1 || echo "")
|
|
||||||
PORT=${PORT:-8501}
|
PORT=${PORT:-8501}
|
||||||
|
|
||||||
if [[ -n "$LAN_IP" ]]; then
|
# .env 의 PUBLIC_BASE_URL 우선. 비어 있으면 LAN IP 자동 감지.
|
||||||
export PUBLIC_BASE_URL="http://${LAN_IP}:${PORT}"
|
ENV_URL=""
|
||||||
echo "[start] PUBLIC_BASE_URL=${PUBLIC_BASE_URL} (자동 감지)"
|
if [[ -f .env ]]; then
|
||||||
|
ENV_URL=$(grep -E '^\s*PUBLIC_BASE_URL\s*=' .env | tail -1 | sed -E 's/^\s*PUBLIC_BASE_URL\s*=\s*//; s/^["'\'']//; s/["'\'']$//' || true)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${PUBLIC_BASE_URL:-}" ]]; then
|
||||||
|
echo "[start] PUBLIC_BASE_URL=${PUBLIC_BASE_URL} (shell env)"
|
||||||
|
elif [[ -n "$ENV_URL" ]]; then
|
||||||
|
export PUBLIC_BASE_URL="$ENV_URL"
|
||||||
|
echo "[start] PUBLIC_BASE_URL=${PUBLIC_BASE_URL} (.env)"
|
||||||
else
|
else
|
||||||
echo "[start] LAN IP 감지 실패. 어드민에서 PUBLIC_BASE_URL 직접 설정 필요."
|
LAN_IP=$(ipconfig getifaddr en0 2>/dev/null || ip -4 addr show 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127\.' | head -1 || echo "")
|
||||||
|
if [[ -n "$LAN_IP" ]]; then
|
||||||
|
export PUBLIC_BASE_URL="http://${LAN_IP}:${PORT}"
|
||||||
|
echo "[start] PUBLIC_BASE_URL=${PUBLIC_BASE_URL} (LAN 자동 감지)"
|
||||||
|
else
|
||||||
|
echo "[start] PUBLIC_BASE_URL 미설정. 어드민에서 직접 설정 필요."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec docker compose up -d --build "$@"
|
exec docker compose up -d --build "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user