Files
sundynix-agentix/docker-compose.yml
T
Blizzard c7a02c3905 feat: 初始化 sundynix-agentix 分层式 AI Agent 平台脚手架
5 层 + 1 条 NATS 零拷贝消息总线的 monorepo(Monolith First → Microservices Morph B)。
纵向主干(任务流 + Token 流回流)已真实跑通,横向各层能力为带注释的桩。

已贯通(real code):
- sundynix-shared: 共享契约 + JetStream/core NATS 真实收发(bus) + 内嵌 NATS(devnats) + e2e 测试
- sundynix-gateway: Gin 接入 + DSL 解析组装 + NATS Publish + SSE 流式输出
- sundynix-dispatcher: NATS 消费 + Eino Orchestrator 流式回流 + 熔断器 + LLM Pool 占位流式
- 链路: HTTP POST → DSL → sundynix.tasks.* → Dispatcher → Token 经 sundynix.streams.<id> 回流 → SSE
- 基础设施: docker-compose(nats/postgres/redis/neo4j/milvus) + Makefile(make demo/e2e)

待填(桩):
- Eino 图编排 compose.NewGraph、LLM Pool 接 vLLM/Ollama
- Gateway store 换真实 pgx/redis
- sundynix-mcp-go: Bleve+Milvus+Neo4j 混合检索 / UniOffice / 外部 API
- sundynix-mcp-py: gVisor 沙箱 / MinerU(PaddleOCR) / Docker 解释器
- sundynix-desktop: React Flow 画布 → DSL 导出 → SSE 展示
2026-06-10 11:00:29 +08:00

72 lines
2.0 KiB
YAML

version: "3.9"
# 基础设施 — NATS 零拷贝骨干网 + 业务存储 + 向量/图数据库
services:
nats:
image: nats:2-alpine
command: ["-c", "/etc/nats/nats-server.conf"]
ports: ["4222:4222", "8222:8222"]
volumes:
- ./deploy/nats/nats-server.conf:/etc/nats/nats-server.conf:ro
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: sundynix
POSTGRES_PASSWORD: sundynix
POSTGRES_DB: sundynix
ports: ["5432:5432"]
volumes: ["pg_data:/var/lib/postgresql/data"]
redis:
image: redis:7-alpine
ports: ["6379:6379"]
# --- Milvus 向量数据库 (standalone 需 etcd + minio) ---
milvus-etcd:
image: quay.io/coreos/etcd:v3.5.14
environment:
ETCD_AUTO_COMPACTION_MODE: revision
ETCD_AUTO_COMPACTION_RETENTION: "1000"
ETCD_QUOTA_BACKEND_BYTES: "4294967296"
ETCD_SNAPSHOT_COUNT: "50000"
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
volumes: ["milvus_etcd:/etcd"]
milvus-minio:
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
command: minio server /minio_data
volumes: ["milvus_minio:/minio_data"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
milvus:
image: milvusdb/milvus:v2.4.13
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: milvus-etcd:2379
MINIO_ADDRESS: milvus-minio:9000
ports: ["19530:19530", "9091:9091"] # 19530=gRPC, 9091=metrics/health
volumes: ["milvus_data:/var/lib/milvus"]
depends_on: [milvus-etcd, milvus-minio]
neo4j:
image: neo4j:5-community
environment:
NEO4J_AUTH: neo4j/sundynix
ports: ["7474:7474", "7687:7687"]
volumes: ["neo4j_data:/data"]
volumes:
pg_data:
milvus_etcd:
milvus_minio:
milvus_data:
neo4j_data: