Files
2026-07-13 12:35:20 +08:00

86 lines
2.4 KiB
YAML

services:
xiaozhi-client:
build:
context: .
dockerfile: Dockerfile.dev
args:
- DOCKERIGNORE_FILE=.dockerignore.dev
image: xiaozhi-client:dev
container_name: xiaozhi-client-dev
restart: unless-stopped
# 端口映射(支持 IPv4 和 IPv6)
ports:
- "9999:9999" # Web UI 端口
- "3000:3000" # 备用端口
# 环境变量
environment:
- NODE_ENV=development
- XIAOZHI_WORKSPACE=/workspaces
- XIAOZHI_CONTAINER=true
- XIAOZHI_CONFIG_DIR=/workspaces
# 强制覆盖 CLI 代码中的 process.cwd() 逻辑
- FORCE_CONFIG_DIR=/workspaces
# 挂载卷
volumes:
# 挂载构建产物和必要文件(基于 package.json 的 files 字段)
- ./dist:/app/dist # 主项目构建产物
- ./web/dist:/app/web/dist # Web界面构建产物
- ./templates:/app/templates # 模板文件
- ./docs:/app/docs # 文档文件
- ./package.json:/app/package.json # package.json 文件
- ./README.md:/app/README.md # README 文件
- ./LICENSE:/app/LICENSE # LICENSE 文件
# 挂载运行时依赖
- ./node_modules:/app/node_modules # 运行时依赖
# 日志文件持久化
- ./logs:/workspaces/logs
# 日志文件持久化(主日志文件)
- ./xiaozhi.log:/workspaces/xiaozhi.log
# 配置文件持久化(可选,用户可以自定义配置)
- ./config:/workspaces/config
# 健康检查 (开发环境需要更长的启动时间)
healthcheck:
test: ["CMD", "xiaozhi", "--version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s # 开发环境需要时间构建和链接
# 网络配置
networks:
- xiaozhi-network
# 资源限制 (开发环境需要更多内存用于构建)
deploy:
resources:
limits:
memory: 4G
cpus: '2.0'
reservations:
memory: 1G
cpus: '1.0'
# 网络配置(支持 IPv4 和 IPv6)
networks:
xiaozhi-network:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 172.20.0.0/24
gateway: 172.20.0.1
- subnet: fd00:abcd::/64
gateway: fd00:abcd::1
# 卷配置
volumes:
xiaozhi-config:
driver: local
xiaozhi-logs:
driver: local