fix(deploy): 우리 서버 CodeAssist 에 SAP MCP 연결 — abap-opencode mcp 컨테이너 네트워크에 붙임(MCP_API_KEY 있으면 자동)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
lee-hyeon-cheol
2026-09-23 09:50:39 +09:00
co-authored by Claude Opus 5.5
parent be4387278f
commit b06dadebc3
4 changed files with 17 additions and 2 deletions
+3 -1
View File
@@ -26,10 +26,12 @@ CORS_ORIGINS=http://tauri.localhost,tauri://localhost,http://localhost:15173
STREAM_FIRST_EVENT_TIMEOUT_S=300 STREAM_FIRST_EVENT_TIMEOUT_S=300
STREAM_TURN_TIMEOUT_S=600 STREAM_TURN_TIMEOUT_S=600
# SAP 조회 MCP — 같은 서버 abap-opencode compose 에 mcp 컨테이너가 있으면 그 주소. 비우면 끔 # SAP 조회 MCP — 같은 서버 abap-opencode 의 mcp 컨테이너를 씀. 키는 abap-opencode web/deploy/.env 의 MCP_API_KEY 와 같게.
# 키가 있으면 deploy.sh 가 그 네트워크(MCP_NETWORK)에 붙여줌. 비우면 끔
MCP_HOST=mcp MCP_HOST=mcp
MCP_PORT=3200 MCP_PORT=3200
MCP_API_KEY= MCP_API_KEY=
MCP_NETWORK=abap-opencode_default
# 관측(Phoenix) — deploy/phoenix 로 띄운 주소. 비우면 안 보냄 # 관측(Phoenix) — deploy/phoenix 로 띄운 주소. 비우면 안 보냄
PHOENIX_HOST=http://host.docker.internal:6006 # 같은 서버 Phoenix. 다른 서버면 그 사설 IP PHOENIX_HOST=http://host.docker.internal:6006 # 같은 서버 Phoenix. 다른 서버면 그 사설 IP
+1 -1
View File
@@ -30,6 +30,6 @@ AGENTS.md·위키·커스텀 도구가 그대로 먹고, be 가 렌더한 `openc
- LLM: `.env``AAF_FABRIX_*` 가 없으면 렌더러가 OpenRouter 템플릿(`opencode/opencode.openrouter.json.tmpl`)을 고름. 고객사는 FabriX 템플릿. - LLM: `.env``AAF_FABRIX_*` 가 없으면 렌더러가 OpenRouter 템플릿(`opencode/opencode.openrouter.json.tmpl`)을 고름. 고객사는 FabriX 템플릿.
- DB: `DB_HOST` 비우면 SQLite(`be_data` 볼륨). 팀 PostgreSQL 쓰려면 DB_* 채움(스키마 `codeassist`). - DB: `DB_HOST` 비우면 SQLite(`be_data` 볼륨). 팀 PostgreSQL 쓰려면 DB_* 채움(스키마 `codeassist`).
- SAP 조회(MCP): 같은 서버 abap-opencode compose 가 떠 있으면 그 `mcp` 컨테이너를 쓸 수 있음 — 두 compose 를 같은 네트워크로 묶어야 함(아직 안 함). 비우면 꺼짐. - SAP 조회(MCP): 같은 서버 abap-opencode `mcp` 컨테이너를 씀. `.env``MCP_API_KEY`(abap-opencode 것과 같은 값) 넣으면 deploy.sh 가 `docker-compose.mcp.yml` 로 opencode 를 네트워크에 붙임. 비우면 꺼짐.
- 관측: `PHOENIX_HOST=http://host.docker.internal:6006`(같은 서버; 공인 IP 는 컨테이너 안에서 안 닿음) (`deploy/phoenix/docker-compose.yml` 로 띄운 것). 프로젝트 `codeassist`. - 관측: `PHOENIX_HOST=http://host.docker.internal:6006`(같은 서버; 공인 IP 는 컨테이너 안에서 안 닿음) (`deploy/phoenix/docker-compose.yml` 로 띄운 것). 프로젝트 `codeassist`.
- 앱(Tauri) 쪽은 `2_frontend/.env.production``VITE_API_BASE_URL` 을 이 서버로 바꿔 빌드해야 붙음. - 앱(Tauri) 쪽은 `2_frontend/.env.production``VITE_API_BASE_URL` 을 이 서버로 바꿔 빌드해야 붙음.
+3
View File
@@ -17,6 +17,8 @@ docker compose version >/dev/null 2>&1 || { echo "docker compose v2 없음"; exi
[ -f .env ] || { echo ".env 없음 — cp .env.example .env 후 채워"; exit 1; } [ -f .env ] || { echo ".env 없음 — cp .env.example .env 후 채워"; exit 1; }
set -a; . ./.env; set +a set -a; . ./.env; set +a
PORT="${BE_PORT:-8080}"; BASE="http://localhost:${PORT}/api/v1" PORT="${BE_PORT:-8080}"; BASE="http://localhost:${PORT}/api/v1"
# MCP 키가 있으면 abap-opencode 의 mcp 컨테이너 네트워크에 붙음(docker-compose.mcp.yml)
if [ -n "${MCP_API_KEY:-}" ]; then export COMPOSE_FILE="docker-compose.yml:docker-compose.mcp.yml"; fi
case "$CMD" in case "$CMD" in
stop) docker compose down; echo "종료(볼륨 유지)"; exit 0 ;; stop) docker compose down; echo "종료(볼륨 유지)"; exit 0 ;;
@@ -36,4 +38,5 @@ for _ in $(seq 1 60); do curl -fsS -m 3 "$BASE/health" >/dev/null 2>&1 && break;
curl -fsS -m 5 "$BASE/health" || { echo "안 떴음 → ./deploy.sh logs"; docker compose ps; exit 1; } curl -fsS -m 5 "$BASE/health" || { echo "안 떴음 → ./deploy.sh logs"; docker compose ps; exit 1; }
echo echo
echo "-- OpenCode 설정(렌더 결과) 모델:"; grep -oE '"model": *"[^"]+"' ../../opencode/opencode.json || true echo "-- OpenCode 설정(렌더 결과) 모델:"; grep -oE '"model": *"[^"]+"' ../../opencode/opencode.json || true
echo "-- SAP MCP: $(grep -oE '"enabled": *[a-z]+' ../../opencode/opencode.json) (true 면 켜짐)"
echo "-- 앱 주소: http://$(hostname -I 2>/dev/null | awk '{print $1}'):${PORT}/api/v1" echo "-- 앱 주소: http://$(hostname -I 2>/dev/null | awk '{print $1}'):${PORT}/api/v1"
@@ -0,0 +1,10 @@
# SAP 조회 MCP 붙이기 — 같은 서버에 떠 있는 abap-opencode 의 mcp 컨테이너를 씀(따로 안 띄움).
# opencode 컨테이너를 abap-opencode 네트워크에도 걸어서 http://mcp:3200 이 보이게 함.
# deploy.sh 가 .env 에 MCP_API_KEY 가 있으면 자동으로 이 파일을 같이 씀.
services:
opencode:
networks: [default, abapnet]
networks:
abapnet:
external: true
name: ${MCP_NETWORK:-abap-opencode_default}