fix: DB 설정 통일 및 설치 스크립트에 Redis/MySQL 연결 체크 추가
- DB 기본값을 ws.ubuilder.co.kr/mos/jsh로 전체 통일 - context-path /spring → / 로 변경 - install.sh/bat에 Redis 자동 시작, MySQL 연결 확인 단계 추가 - health URL /health → /actuator/health 수정 - 개발환경 가이드 문서 동기화 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이 Commit은 다음에 포함되어 있습니다:
@@ -208,7 +208,7 @@ echo " [ ] DB 생성 + 사용자 권한 부여"
|
||||
echo " [ ] Redis 설치 + bind 127.0.0.1 + requirepass"
|
||||
echo " [ ] JAR 빌드: ./gradlew bootJar"
|
||||
echo " [ ] 서비스 시작: sudo systemctl start ${SERVICE_NAME}"
|
||||
echo " [ ] 확인: curl http://localhost:8080/health"
|
||||
echo " [ ] 확인: curl http://localhost:8080/actuator/health"
|
||||
echo " [ ] 리버스 프록시 설정 (Nginx/Caddy)"
|
||||
echo " [ ] SSL 인증서 설치"
|
||||
echo "=========================================="
|
||||
|
||||
@@ -88,8 +88,53 @@ if !ERRORLEVEL! equ 0 (
|
||||
echo [WARN] Docker 미설치 — DB/Redis를 직접 설치해야 합니다
|
||||
)
|
||||
|
||||
:: ---------- 4. 빌드 ----------
|
||||
echo 4. Gradle 빌드
|
||||
:: ---------- 4. Redis 확인 ----------
|
||||
echo 4. Redis 확인
|
||||
set "REDIS_OK=0"
|
||||
where redis-cli >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
redis-cli -h localhost -p 6379 ping 2>nul | findstr /i "PONG" >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [OK] Redis 응답 OK
|
||||
set "REDIS_OK=1"
|
||||
)
|
||||
)
|
||||
if !REDIS_OK! equ 0 (
|
||||
where docker >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
docker ps --format "{{.Names}}" 2>nul | findstr /i "redis" >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [OK] Redis Docker 컨테이너 실행 중
|
||||
) else (
|
||||
echo [INFO] Redis 미실행 — Docker로 자동 시작...
|
||||
docker run -d --name redis -p 6379:6379 redis:7-alpine >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [OK] Redis 컨테이너 시작 완료
|
||||
) else (
|
||||
echo [WARN] Redis 자동 시작 실패 — 수동으로 Redis를 실행하세요
|
||||
)
|
||||
)
|
||||
) else (
|
||||
echo [WARN] Redis 연결 불가 — Redis를 설치/실행하세요
|
||||
)
|
||||
)
|
||||
|
||||
:: ---------- 5. MySQL 연결 확인 ----------
|
||||
echo 5. MySQL 연결 확인
|
||||
where mysql >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
mysql -h"%DB_HOST%" -P"%DB_PORT%" -u"%DB_USER%" -p"%DB_PASS%" -e "USE %DB_NAME%;" >nul 2>&1
|
||||
if !ERRORLEVEL! equ 0 (
|
||||
echo [OK] MySQL 연결 OK ^(%DB_USER%@%DB_HOST%:%DB_PORT%/%DB_NAME%^)
|
||||
) else (
|
||||
echo [WARN] MySQL 연결 실패 — .env 의 DB 설정을 확인하세요
|
||||
)
|
||||
) else (
|
||||
echo [INFO] mysql 클라이언트 없음 — DB 연결은 앱 시작 시 확인됩니다
|
||||
)
|
||||
|
||||
:: ---------- 6. 빌드 ----------
|
||||
echo 6. Gradle 빌드
|
||||
if !ERRORS! GTR 0 (
|
||||
echo [FAIL] 사전 요구사항 미충족 — 빌드 건너뜀
|
||||
) else (
|
||||
@@ -102,8 +147,8 @@ if !ERRORS! GTR 0 (
|
||||
)
|
||||
)
|
||||
|
||||
:: ---------- 5. .env 템플릿 ----------
|
||||
echo 5. 환경변수 파일
|
||||
:: ---------- 7. .env 템플릿 ----------
|
||||
echo 7. 환경변수 파일
|
||||
if not exist "!PROJECT_ROOT!\.env" (
|
||||
(
|
||||
echo # ===== WBX Spring Core — 환경변수 =====
|
||||
@@ -119,11 +164,11 @@ if not exist "!PROJECT_ROOT!\.env" (
|
||||
echo JWT_SECRET=your-production-secret-key-minimum-256-bits-long
|
||||
echo.
|
||||
echo # --- DB ---
|
||||
echo DB_HOST=localhost
|
||||
echo DB_HOST=ws.ubuilder.co.kr
|
||||
echo DB_PORT=3306
|
||||
echo DB_NAME=wbx_spring
|
||||
echo DB_USER=wbxapp
|
||||
echo DB_PASS=StrongP@ss
|
||||
echo DB_NAME=mos
|
||||
echo DB_USER=jsh
|
||||
echo DB_PASS=jsh@
|
||||
echo.
|
||||
echo # --- Redis ---
|
||||
echo SPRING_DATA_REDIS_HOST=localhost
|
||||
@@ -160,8 +205,8 @@ if not exist "!PROJECT_ROOT!\.env" (
|
||||
echo [WARN] .env 이미 존재 — 건너뜀
|
||||
)
|
||||
|
||||
:: ---------- 6. 디렉토리 ----------
|
||||
echo 6. 디렉토리 생성
|
||||
:: ---------- 8. 디렉토리 ----------
|
||||
echo 8. 디렉토리 생성
|
||||
if not exist "!PROJECT_ROOT!\logs" mkdir "!PROJECT_ROOT!\logs"
|
||||
if not exist "!PROJECT_ROOT!\uploads" mkdir "!PROJECT_ROOT!\uploads"
|
||||
if not exist "!PROJECT_ROOT!\backup" mkdir "!PROJECT_ROOT!\backup"
|
||||
@@ -177,7 +222,7 @@ if !ERRORS! equ 0 (
|
||||
echo 1. .env 파일을 환경에 맞게 수정
|
||||
echo 2. DB 생성 ^(또는 docker compose -f docker-compose-dev.yml up -d^)
|
||||
echo 3. gradlew.bat bootRun
|
||||
echo 4. http://localhost:8080/health 확인
|
||||
echo 4. http://localhost:8080/actuator/health 확인
|
||||
) else (
|
||||
echo 오류 !ERRORS!건 — 위의 [FAIL] 항목을 해결하세요
|
||||
)
|
||||
|
||||
@@ -139,8 +139,45 @@ else
|
||||
warn "Docker 미설치 — DB/Redis를 직접 설치해야 합니다"
|
||||
fi
|
||||
|
||||
# ---------- 4. 빌드 ----------
|
||||
echo "4. Gradle 빌드"
|
||||
# ---------- 4. Redis 확인 ----------
|
||||
echo "4. Redis 확인"
|
||||
REDIS_HOST="${SPRING_DATA_REDIS_HOST:-localhost}"
|
||||
REDIS_PORT="${SPRING_DATA_REDIS_PORT:-6379}"
|
||||
if command -v redis-cli &>/dev/null && redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping 2>/dev/null | grep -q PONG; then
|
||||
ok "Redis 응답 OK ($REDIS_HOST:$REDIS_PORT)"
|
||||
elif command -v docker &>/dev/null; then
|
||||
if docker ps --format '{{.Names}}' 2>/dev/null | grep -q redis; then
|
||||
ok "Redis Docker 컨테이너 실행 중"
|
||||
else
|
||||
info "Redis 미실행 — Docker로 자동 시작..."
|
||||
if docker run -d --name redis -p "${REDIS_PORT}:6379" redis:7-alpine &>/dev/null; then
|
||||
ok "Redis 컨테이너 시작 완료"
|
||||
else
|
||||
warn "Redis 자동 시작 실패 — 수동으로 Redis를 실행하세요"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
warn "Redis 연결 불가 ($REDIS_HOST:$REDIS_PORT) — Redis를 설치/실행하세요"
|
||||
fi
|
||||
|
||||
# ---------- 5. MySQL 연결 확인 ----------
|
||||
echo "5. MySQL 연결 확인"
|
||||
DB_HOST="${DB_HOST:-ws.ubuilder.co.kr}"
|
||||
DB_PORT="${DB_PORT:-3306}"
|
||||
DB_NAME="${DB_NAME:-mos}"
|
||||
DB_USER="${DB_USER:-jsh}"
|
||||
if command -v mysql &>/dev/null; then
|
||||
if mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"${DB_PASS:-}" -e "USE $DB_NAME;" 2>/dev/null; then
|
||||
ok "MySQL 연결 OK ($DB_USER@$DB_HOST:$DB_PORT/$DB_NAME)"
|
||||
else
|
||||
warn "MySQL 연결 실패 — .env 의 DB 설정을 확인하세요"
|
||||
fi
|
||||
else
|
||||
info "mysql 클라이언트 없음 — DB 연결은 앱 시작 시 확인됩니다"
|
||||
fi
|
||||
|
||||
# ---------- 6. 빌드 ----------
|
||||
echo "6. Gradle 빌드"
|
||||
if [ $ERRORS -gt 0 ]; then
|
||||
fail "사전 요구사항 미충족 — 빌드 건너뜀"
|
||||
else
|
||||
@@ -153,8 +190,8 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# ---------- 5. .env 템플릿 ----------
|
||||
echo "5. 환경변수 파일"
|
||||
# ---------- 7. .env 템플릿 ----------
|
||||
echo "7. 환경변수 파일"
|
||||
if [ ! -f "$PROJECT_ROOT/.env" ]; then
|
||||
cat > "$PROJECT_ROOT/.env" << 'ENVEOF'
|
||||
# ===== WBX Spring Core — 환경변수 =====
|
||||
@@ -170,11 +207,11 @@ SERVER_CONTEXT_PATH=/
|
||||
JWT_SECRET=your-production-secret-key-minimum-256-bits-long
|
||||
|
||||
# --- DB ---
|
||||
DB_HOST=localhost
|
||||
DB_HOST=ws.ubuilder.co.kr
|
||||
DB_PORT=3306
|
||||
DB_NAME=wbx_spring
|
||||
DB_USER=wbxapp
|
||||
DB_PASS=StrongP@ss
|
||||
DB_NAME=mos
|
||||
DB_USER=jsh
|
||||
DB_PASS=jsh@
|
||||
|
||||
# --- Redis ---
|
||||
SPRING_DATA_REDIS_HOST=localhost
|
||||
@@ -212,8 +249,8 @@ else
|
||||
warn ".env 이미 존재 — 건너뜀"
|
||||
fi
|
||||
|
||||
# ---------- 6. 디렉토리 ----------
|
||||
echo "6. 디렉토리 생성"
|
||||
# ---------- 8. 디렉토리 ----------
|
||||
echo "8. 디렉토리 생성"
|
||||
mkdir -p "$PROJECT_ROOT/logs" "$PROJECT_ROOT/uploads" "$PROJECT_ROOT/backup"
|
||||
ok "logs/ uploads/ backup/"
|
||||
|
||||
@@ -227,7 +264,7 @@ if [ $ERRORS -eq 0 ]; then
|
||||
echo " 1. .env 파일을 환경에 맞게 수정"
|
||||
echo " 2. DB 생성 (또는 docker compose -f docker-compose-dev.yml up -d)"
|
||||
echo " 3. ./gradlew bootRun"
|
||||
echo " 4. http://localhost:8080/health 확인"
|
||||
echo " 4. http://localhost:8080/actuator/health 확인"
|
||||
else
|
||||
echo -e " ${RED}오류 ${ERRORS}건 — 위의 [FAIL] 항목을 해결하세요${NC}"
|
||||
fi
|
||||
|
||||
새 Issue에서 참조
사용자 차단