version: "3.9" services: # ========== MaxKB 知识库平台 ========== maxkb: image: 1panel/maxkb:latest container_name: maxkb ports: - "8080:8080" volumes: - maxkb_data:/app/data environment: - MAXKB_PORT=8080 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"] interval: 30s timeout: 5s retries: 3 # ========== MySQL 数据库 ========== mysql: image: mysql:8.0 container_name: tcm-mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: tcm123456 MYSQL_DATABASE: tcm_agent MYSQL_CHARSET: utf8mb4 volumes: - mysql_data:/var/lib/mysql restart: unless-stopped # ========== 向量数据库(可选,用于长期记忆) ========== milvus: image: milvusdb/milvus:latest container_name: tcm-milvus ports: - "19530:19530" volumes: - milvus_data:/var/lib/milvus restart: unless-stopped # ========== Go Agent 服务 ========== agent: build: context: ../.. dockerfile: manifest/docker/Dockerfile container_name: tcm-agent ports: - "9000:8080" environment: - SERVER_PORT=8080 - MAXKB_API_KEY=${MAXKB_API_KEY:-your-key-here} - LLM_API_KEY=${LLM_API_KEY:-your-key-here} - DB_DSN=root:tcm123456@tcp(mysql:3306)/tcm_agent?charset=utf8mb4 depends_on: maxkb: condition: service_healthy mysql: condition: service_started restart: unless-stopped volumes: maxkb_data: mysql_data: milvus_data: