feat(deploy): 도커 배포(deploy/docker: compose+Dockerfile+deploy.sh) — 우리 환경용. 렌더러가 FabriX/OpenRouter 템플릿 자동 선택, 호스트 변수화. bare deploy.sh 는 git pull 포함. Phoenix 도커 compose

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
lee-hyeon-cheol
2026-09-22 18:09:48 +09:00
co-authored by Claude Fable 5.1
parent f55e673cb5
commit ea1fd350da
13 changed files with 232 additions and 11 deletions
@@ -0,0 +1,35 @@
# 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://opencode:4096
OPENCODE_DIRECTORY: /workspace # OpenCode 컨테이너가 보는 workspace 경로 — 세션이 여기 생김
BACKEND_HOST: be # 렌더된 opencode.json 의 게이트웨이 주소(고객사 모드일 때)
BACKEND_PORT: "8080"
MCP_HOST: ${MCP_HOST:-mcp}
volumes:
- ../../opencode:/app/opencode # AGENTS.md·.opencode·wiki·렌더 결과(opencode.json)
- be_data:/app/data # SQLite(DB_HOST 비울 때)·auth secret
depends_on: [opencode]
restart: unless-stopped
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: