Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
40 lines
1.8 KiB
YAML
40 lines
1.8 KiB
YAML
# CodeAssist 백엔드 — 우리 환경(도커)용. 고객사(도커 없음)는 5_django_backend/deploy.sh.
|
|
# 사용: 이 폴더에서 cp .env.example .env 채우고 ./deploy.sh
|
|
# 밖으로 여는 건 be(:8080 → BE_PORT) 하나. 앱(Tauri)이 http://<서버>:<BE_PORT>/api/v1 로 붙음.
|
|
name: codeassist
|
|
|
|
services:
|
|
be:
|
|
build: { context: ../.., dockerfile: deploy/docker/Dockerfile.be }
|
|
ports:
|
|
- "${BE_PORT:-8080}:8080"
|
|
env_file: .env
|
|
environment:
|
|
OPENCODE_BASE_URL: http://ca-opencode:4096
|
|
OPENCODE_DIRECTORY: /workspace # OpenCode 컨테이너가 보는 workspace 경로 — 세션이 여기 생김
|
|
BACKEND_HOST: be # 렌더된 opencode.json 의 게이트웨이 주소(고객사 모드일 때)
|
|
BACKEND_PORT: "8080"
|
|
MCP_HOST: ${MCP_HOST:-mcp}
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway" # 같은 서버의 Phoenix(:6006) 를 host.docker.internal 로 — 공인 IP 는 컨테이너 안에서 안 닿음(Azure)
|
|
volumes:
|
|
- ../../opencode:/app/opencode # AGENTS.md·.opencode·wiki·렌더 결과(opencode.json)
|
|
- be_data:/app/data # SQLite(DB_HOST 비울 때)·auth secret
|
|
depends_on: [ca-opencode]
|
|
restart: unless-stopped
|
|
|
|
# 이름을 opencode 로 두면 안 됨 — MCP 쓰려고 abap-opencode 네트워크에 붙을 때 그쪽 opencode 와 DNS 가 겹쳐
|
|
# ABAP_OPENCODE 백엔드 요청이 반씩 여기로 새버림(2026-09-23 사고: 세션 깜빡임·Session not found)
|
|
ca-opencode:
|
|
build: { context: ../.., dockerfile: deploy/docker/Dockerfile.opencode }
|
|
environment:
|
|
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
|
|
volumes:
|
|
- ../../opencode:/workspace
|
|
- oc_data:/root/.local/share/opencode # 세션·메시지 저장
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
be_data:
|
|
oc_data:
|