Deploy: exdev sync 2026-08-11 17:56:35

This commit is contained in:
Macbook
2026-08-11 17:56:35 +09:00
parent b29ea93f78
commit a63987d168
2 changed files with 133 additions and 37 deletions
+27 -5
View File
@@ -11,6 +11,13 @@
# ./server-dev/start-all-server.sh --skip-oracle # TROAD Oracle 기동 생략
# ./server-dev/start-all-server.sh --local # 로컬 Mac 개발 모드 (local-dev 위임)
#
# ★ 개발서버(exdev) 주소/설정은 이 스크립트가 런타임 ENV 로만 적용한다.
# - WAS Mongo → 127.0.0.1 (SPRING_DATA_MONGODB_URI)
# - Skill → 로컬 WAS/RAG (CHATBOT_API_BASE_URL, RAG_AGENT_CHAT_URL)
# - RAG .env → host.docker.internal + EXDEV_LOCAL=true
# application.yml 등 커밋 파일은 운영 기본값(172.16.180.130)을 유지한다.
# 공식 GitHub 반영은 ./git_fetch_all.sh 전용 (exdev 주소를 push 하지 않음).
#
# 로컬 Mac 실행 시: Gitea(exdev) 최신 merge → 현재 소스 commit/push → 원격 배포.
# 공식 GitHub(KoreaExpressWayCorp) push 는 하지 않음 — ./git_fetch_all.sh 전용.
set -euo pipefail
@@ -41,6 +48,8 @@ MONGO_CONTAINER="${MONGO_CONTAINER:-exaichatbot-agent-mongo}"
ORACLE_CONTAINER="${ORACLE_CONTAINER:-exaichatbot-agent-oracle-troad}"
INTERNAL_TOOL_API_KEY="${INTERNAL_TOOL_API_KEY:-exdev-agent-tool-key}"
PUBLIC_BASE_URL="${PUBLIC_BASE_URL:-https://chatbot.exdev.co.kr}"
# exdev 전용 — 소스(application.yml)를 수정하지 않고 ENV 로만 주입
EXDEV_MONGO_URI="${EXDEV_MONGO_URI:-mongodb://127.0.0.1:27017/chatbot?heartbeatFrequencyMS=30000&minPoolSize=8&maxIdleTimeMS=18000000}"
LLM_PORT="${LLM_PORT:-16000}"
EMBED_PORT="${EMBED_PORT:-16001}"
@@ -551,19 +560,30 @@ start_java_service() {
kakaoChatbotSkill) port="${SKILL_PORT}" ;;
esac
# exdev ENV(로컬 Mongo/WAS/RAG) 재적용을 위해 기존 프로세스는 항상 재기동한다.
if [[ -f "${pid_file}" ]]; then
local old_pid
old_pid="$(cat "${pid_file}")"
if kill -0 "$old_pid" 2>/dev/null; then
if [[ -n "${port}" ]] && lsof -iTCP:"${port}" -sTCP:LISTEN >/dev/null 2>&1; then
log "${name} 이미 실행 중 (PID ${old_pid}, :${port})"
return 0
fi
# pid 는 있으나 포트 미개방 → 좀비/실패 프로세스 정리
log "${name} 재기동 (기존 PID ${old_pid})"
kill "$old_pid" 2>/dev/null || true
sleep 2
kill -9 "$old_pid" 2>/dev/null || true
fi
rm -f "${pid_file}"
fi
if [[ -n "${port}" ]]; then
local pids
pids="$(lsof -tiTCP:"${port}" -sTCP:LISTEN 2>/dev/null || true)"
if [[ -n "${pids}" ]]; then
log "${name} :${port} 점유 프로세스 종료"
# shellcheck disable=SC2086
kill ${pids} 2>/dev/null || true
sleep 1
# shellcheck disable=SC2086
kill -9 ${pids} 2>/dev/null || true
fi
fi
[[ -n "${JAVA_HOME}" ]] || ensure_java
chmod +x "${dir}/gradlew"
@@ -703,6 +723,7 @@ start_rag
if ! $SKIP_JAVA; then
ensure_java
# Skill 먼저 (WAS WEB tool 이 Skill data-portal 을 역호출)
log "exdev Java ENV: Skill→127.0.0.1 WAS/RAG, WAS Mongo→127.0.0.1 (소스 yml 미변경)"
start_java_service "kakaoChatbotSkill" "${SKILL_DIR}" \
"${RUN_DIR}/kakao-skill.pid" "${LOG_DIR}/kakao-skill.log" \
"EXDEV_LOCAL=true" \
@@ -719,6 +740,7 @@ if ! $SKIP_JAVA; then
"SKILL_INTERNAL_BASE_URL=http://127.0.0.1:${SKILL_PORT}" \
"RAG_SERVER_HOST=127.0.0.1" \
"RAG_SERVER_PORT=${RAG_PORT}" \
"SPRING_DATA_MONGODB_URI=${EXDEV_MONGO_URI}" \
|| warn "chatbotApi 기동 실패"
fi