From 79357714688afa416d036ee0878cdea8f5a5913c Mon Sep 17 00:00:00 2001 From: altair823 Date: Mon, 27 Apr 2026 13:02:06 +0000 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(script):=20improv?= =?UTF-8?q?e=20public=20base=20URL=20configuration=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - .env 파일의 PUBLIC_BASE_URL을 우선 사용하도록 변경 - shell 환경 변수, .env 파일, LAN IP 순으로 PUBLIC_BASE_URL 설정 - LAN IP 감지 실패 시 경고 메시지 수정 - 코드 가독성 향상 및 에러 처리 개선 --- start.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 1f2abf2..f7fcdb7 100755 --- a/start.sh +++ b/start.sh @@ -3,14 +3,27 @@ set -euo pipefail 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} -if [[ -n "$LAN_IP" ]]; then - export PUBLIC_BASE_URL="http://${LAN_IP}:${PORT}" - echo "[start] PUBLIC_BASE_URL=${PUBLIC_BASE_URL} (자동 감지)" +# .env 의 PUBLIC_BASE_URL 우선. 비어 있으면 LAN IP 자동 감지. +ENV_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 - 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 exec docker compose up -d --build "$@"