89 lines
3.1 KiB
YAML
89 lines
3.1 KiB
YAML
# =============================================================================
|
|
# 主分支/生产环境编排 (Main Branch Production Environment)
|
|
# 特性:
|
|
# 1. 独占系统业务库 (5435:5432) 与专属高稳定性数据卷
|
|
# 2. 独占生产对话记录、工作区及审计日志目录 (./data/main)
|
|
# 3. 共享连接知识库服务 (shuimu-kb-shared:5432)
|
|
# =============================================================================
|
|
name: agent-main
|
|
|
|
services:
|
|
system-db:
|
|
image: postgres:16-alpine
|
|
container_name: shuimu-system-pg-main
|
|
command: ["postgres", "-c", "shared_buffers=512MB", "-c", "max_connections=300"]
|
|
environment:
|
|
POSTGRES_USER: ${SYSTEM_DB_USER:-app}
|
|
POSTGRES_PASSWORD: ${SYSTEM_DB_PASSWORD:-prod_highly_secure_db_pass}
|
|
POSTGRES_DB: ${SYSTEM_DB_NAME:-agent_system_main}
|
|
ports:
|
|
- "127.0.0.1:${SYSTEM_DB_PUBLISH_PORT:-5435}:5432"
|
|
volumes:
|
|
- main-system-pgdata:/var/lib/postgresql/data
|
|
- ./deploy/postgres/system_init.sql:/docker-entrypoint-initdb.d/01-init.sql:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${SYSTEM_DB_USER:-app} -d ${SYSTEM_DB_NAME:-agent_system_main}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
restart: always
|
|
networks:
|
|
- main-net
|
|
|
|
cursor-agent:
|
|
image: alpine:latest
|
|
container_name: shuimu-cursor-agent-main
|
|
command: ["sh", "-c", "echo 'Main/Prod Agent Runner is running' && sleep infinity"]
|
|
environment:
|
|
CURSOR_RUNNER_ADDR: ":18767"
|
|
DATA_DIR: /app/data/workspaces
|
|
ports:
|
|
- "127.0.0.1:${CURSOR_RUNNER_PORT:-18767}:18767"
|
|
volumes:
|
|
- ./data/main/workspaces:/app/data/workspaces
|
|
restart: always
|
|
networks:
|
|
- main-net
|
|
|
|
app:
|
|
image: alpine:latest
|
|
container_name: shuimu-agent-app-main
|
|
command: ["sh", "-c", "echo 'Main/Prod Agent App service is running on :8000' && sleep infinity"]
|
|
depends_on:
|
|
system-db:
|
|
condition: service_healthy
|
|
environment:
|
|
ENV: prod
|
|
HTTP_ADDR: ":${HTTP_PORT:-8000}"
|
|
DATA_DIR: /app/data
|
|
# 独占生产业务与对话库
|
|
APP_DB_DSN: postgres://${SYSTEM_DB_USER:-app}:${SYSTEM_DB_PASSWORD:-prod_highly_secure_db_pass}@system-db:5432/${SYSTEM_DB_NAME:-agent_system_main}?sslmode=disable
|
|
# 共享知识库
|
|
POSTGRES_SHARED_KB_DSN: postgres://${KB_DB_USER:-regkb}:${KB_DB_PASSWORD:-shared_kb_secret_pass}@shuimu-kb-shared:5432/${KB_DB_NAME:-regulations}?sslmode=disable
|
|
CURSOR_RUNNER_URL: http://cursor-agent:18767
|
|
AUX_FILE_DSN: file:/var/lib/feishu/outbox_main.db?_journal_mode=WAL&_busy_timeout=5000
|
|
ports:
|
|
- "${APP_PUBLISH_HOST:-0.0.0.0}:${HTTP_PORT:-8000}:${HTTP_PORT:-8000}"
|
|
volumes:
|
|
# 独占生产对话记录与环境数据
|
|
- ./data/main:/app/data
|
|
- main-aux-sqlite-data:/var/lib/feishu
|
|
restart: always
|
|
networks:
|
|
- main-net
|
|
- shared-net
|
|
|
|
networks:
|
|
main-net:
|
|
name: chat-agent-main-net
|
|
driver: bridge
|
|
shared-net:
|
|
name: chat-agent-shared-net
|
|
external: true
|
|
|
|
volumes:
|
|
main-system-pgdata:
|
|
name: agent-main-system-pgdata
|
|
main-aux-sqlite-data:
|
|
name: agent-main-aux-sqlite-data
|