feat: publish workphone SDK deployment and API docs
This commit is contained in:
109
sdk/docker-compose.nas.yml
Normal file
109
sdk/docker-compose.nas.yml
Normal file
@@ -0,0 +1,109 @@
|
||||
# 工作手机 SDK · 公司 NAS 一体化部署(不依赖宿主机 Mongo/Redis)
|
||||
# Container Manager 显示名:05-业务网站-工作手机
|
||||
# compose project name 默认取目录名 workphone-sdk(勿显式指定 name,避免与现存 project 冲突)
|
||||
# 用法:在 NAS 或已同步本目录的机器上执行
|
||||
# docker compose -f docker-compose.nas.yml up -d --build
|
||||
#
|
||||
# 默认端口:8899(控制台 /hub、API、WebSocket 同源)
|
||||
# 访问:http://<NAS_IP>:8899/hub
|
||||
#
|
||||
# 说明:
|
||||
# - Mongo/Redis 仅加入 Docker 内网,不映射到宿主机公网端口,降低暴露面。
|
||||
# - AI Brain 默认关闭;若公司有内网服务,设 AI_BRAIN_ENABLED=true 与 AI_BRAIN_API_URL。
|
||||
# - 手机控制:NAS 无 USB,请用手机「无线调试 / adb tcpip」后,在控制台或通过 adb connect 同一局域网设备。
|
||||
|
||||
services:
|
||||
mongo:
|
||||
image: mongo:7
|
||||
container_name: workphone-mongo-nas
|
||||
restart: always
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: admin
|
||||
MONGO_INITDB_ROOT_PASSWORD: admin123
|
||||
volumes:
|
||||
- nas_workphone_mongo:/data/db
|
||||
networks:
|
||||
- workphone-nas
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"mongosh",
|
||||
"--quiet",
|
||||
"mongodb://admin:admin123@127.0.0.1:27017/admin",
|
||||
"--eval",
|
||||
"db.adminCommand('ping')",
|
||||
]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
start_period: 40s
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: workphone-redis-nas
|
||||
restart: always
|
||||
command: ["redis-server", "--appendonly", "yes"]
|
||||
volumes:
|
||||
- nas_workphone_redis:/data
|
||||
networks:
|
||||
- workphone-nas
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
|
||||
workphone-sdk:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: workphone-sdk-nas
|
||||
restart: always
|
||||
ports:
|
||||
- "8899:8899"
|
||||
environment:
|
||||
- ENV=production
|
||||
- MONGO_URI=mongodb://admin:admin123@mongo:27017/?authSource=admin
|
||||
- MONGO_DB=workphone_sdk
|
||||
- REDIS_URL=redis://redis:6379/1
|
||||
- API_KEY=${API_KEY:-workphone-secret-key}
|
||||
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
|
||||
- ADB_SERVER_SOCKET=${ADB_SERVER_SOCKET:-}
|
||||
- AI_BRAIN_ENABLED=${AI_BRAIN_ENABLED:-false}
|
||||
- AI_BRAIN_API_URL=${AI_BRAIN_API_URL:-http://127.0.0.1:3102}
|
||||
- AI_BRAIN_API_KEY=${AI_BRAIN_API_KEY:-}
|
||||
- AI_BRAIN_DEFAULT_MODEL=${AI_BRAIN_DEFAULT_MODEL:-auto}
|
||||
volumes:
|
||||
- nas_workphone_data:/data
|
||||
- nas_workphone_logs:/app/logs
|
||||
# 工作台「开发文档」知识库:将 NAS 上的开发文档目录挂到容器内固定路径 /开发文档
|
||||
# - /volume1/docker/workphone-docs/开发文档:/开发文档:ro
|
||||
depends_on:
|
||||
mongo:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- workphone-nas
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8899/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "50m"
|
||||
max-file: "3"
|
||||
|
||||
volumes:
|
||||
nas_workphone_mongo:
|
||||
nas_workphone_redis:
|
||||
nas_workphone_data:
|
||||
nas_workphone_logs:
|
||||
|
||||
networks:
|
||||
workphone-nas:
|
||||
name: workphone-nas-network
|
||||
Reference in New Issue
Block a user