xiaozhi-client 1.9.3 → 1.9.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/WebServerLauncher.js +2 -100
- package/dist/backend/WebServerLauncher.js +100 -0
- package/dist/backend/WebServerLauncher.js.map +1 -0
- package/dist/backend/cli.js +129 -0
- package/dist/backend/cli.js.map +1 -0
- package/dist/{package.json → backend/package.json} +21 -9
- package/dist/cli.js +2 -129
- package/dist/docs/404/index.html +19 -0
- package/dist/docs/404.html +19 -0
- package/dist/docs/_next/static/JZ0ESgtaHnsqkxSabOqqU/_buildManifest.js +1 -0
- package/dist/docs/_next/static/JZ0ESgtaHnsqkxSabOqqU/_ssgManifest.js +1 -0
- package/dist/docs/_next/static/chunks/112-c9cbd8401d35f825.js +4 -0
- package/dist/docs/_next/static/chunks/2a9bc5d7-4c434acf20ba934a.js +1 -0
- package/dist/docs/_next/static/chunks/782-c26ca6c69e488d48.js +1 -0
- package/dist/docs/_next/static/chunks/799-fe0d35806fd12012.js +1 -0
- package/dist/docs/_next/static/chunks/9b1cb2c3-cc9ed703e6aef1a2.js +1 -0
- package/dist/docs/_next/static/chunks/app/[[...mdxPath]]/page-48f5c8f3210e0a8a.js +1 -0
- package/dist/docs/_next/static/chunks/app/_not-found/page-2e38866a1cbb77e4.js +1 -0
- package/dist/docs/_next/static/chunks/app/layout-e8f420537fd59e8d.js +1 -0
- package/dist/docs/_next/static/chunks/framework-b73126dabbf07067.js +1 -0
- package/dist/docs/_next/static/chunks/main-75dc65850b89d90d.js +1 -0
- package/dist/docs/_next/static/chunks/main-app-3303134270964ce6.js +1 -0
- package/dist/docs/_next/static/chunks/pages/_app-e698a68d07c8993d.js +1 -0
- package/dist/docs/_next/static/chunks/pages/_error-189a41ab5833da03.js +1 -0
- package/dist/docs/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/dist/docs/_next/static/chunks/webpack-10e2bf7d852ddb6e.js +1 -0
- package/dist/docs/_next/static/css/2d82b615fcca1590.css +1 -0
- package/dist/docs/_next/static/css/b03484a3c350cf6e.css +1 -0
- package/dist/docs/_next/static/css/b289318ef4b60b0a.css +1 -0
- package/dist/docs/changelog/index.html +585 -0
- package/dist/docs/changelog/index.txt +1079 -0
- package/dist/docs/images/coze-workflow/get-parameter.png +0 -0
- package/dist/docs/index.html +22 -0
- package/dist/docs/index.txt +41 -0
- package/dist/docs/quickstart/index.html +64 -0
- package/dist/docs/quickstart/index.txt +185 -0
- package/dist/docs/reference/command/index.html +20 -0
- package/dist/docs/reference/command/index.txt +42 -0
- package/dist/docs/usage/as-mcp/index.html +36 -0
- package/dist/docs/usage/as-mcp/index.txt +101 -0
- package/dist/docs/usage/coze-workflow/index.html +35 -0
- package/dist/docs/usage/coze-workflow/index.txt +120 -0
- package/dist/docs/usage/docker/index.html +40 -0
- package/dist/docs/usage/docker/index.txt +154 -0
- package/dist/docs/usage/modelscope/index.html +32 -0
- package/dist/docs/usage/modelscope/index.txt +109 -0
- package/dist/docs/usage/multi-endpoint/index.html +32 -0
- package/dist/docs/usage/multi-endpoint/index.txt +118 -0
- package/dist/frontend/assets/form-utils-h64o2Nyg.js.map +1 -0
- package/{apps/frontend/dist → dist/frontend}/assets/index-88NfCOo9.js.map +1 -1
- package/dist/frontend/assets/radix-ui-BA32w1ww.js.map +1 -0
- package/dist/frontend/assets/react-vendor-DrjkXih1.js.map +1 -0
- package/dist/frontend/assets/utils-CiPelQLP.js.map +1 -0
- package/dist/frontend/assets/vendor-DK9yaMt3.js.map +1 -0
- package/dist/shared-types/index.js +36 -0
- package/dist/shared-types/index.js.map +1 -0
- package/package.json +21 -9
- package/apps/frontend/README.md +0 -169
- package/apps/frontend/dist/assets/form-utils-h64o2Nyg.js.map +0 -1
- package/apps/frontend/dist/assets/radix-ui-BA32w1ww.js.map +0 -1
- package/apps/frontend/dist/assets/react-vendor-DrjkXih1.js.map +0 -1
- package/apps/frontend/dist/assets/utils-CiPelQLP.js.map +0 -1
- package/apps/frontend/dist/assets/vendor-DK9yaMt3.js.map +0 -1
- package/dist/WebServerLauncher.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/docs/arch/cache.mdx +0 -885
- package/docs/changelog.mdx +0 -645
- package/docs/development/architecture.mdx +0 -71
- package/docs/development/docker-build.mdx +0 -256
- package/docs/development/todo__release-guide.md +0 -563
- package/docs/development/todo__setting-manager.md +0 -122
- package/docs/docs.json +0 -55
- package/docs/getting-started/install.mdx +0 -191
- package/docs/getting-started/intro.mdx +0 -11
- package/docs/getting-started/quickstart.mdx +0 -108
- package/docs/mcp-tool-calling.md +0 -363
- package/docs/python-dependencies.md +0 -216
- package/docs/reference/command.mdx +0 -15
- package/docs/usage/add-mcp-server.mdx +0 -6
- package/docs/usage/as-a-mcp-server.mdx +0 -76
- package/docs/usage/coze-workflow.mdx +0 -73
- package/docs/usage/docker.mdx +0 -99
- package/docs/usage/modelscope.mdx +0 -74
- package/docs/usage/use-multi-xiaozhi-mcp-endpoints.mdx +0 -77
- package/docs/usage/web-control.mdx +0 -6
- /package/dist/{WebServerLauncher.d.ts → backend/WebServerLauncher.d.ts} +0 -0
- /package/dist/{cli.d.ts → backend/cli.d.ts} +0 -0
- /package/dist/{templates → backend/templates}/default/mcpServers/calculator.js +0 -0
- /package/dist/{templates → backend/templates}/default/mcpServers/datetime.js +0 -0
- /package/dist/{templates → backend/templates}/default/package.json +0 -0
- /package/dist/{templates → backend/templates}/default/xiaozhi.config.json +0 -0
- /package/dist/{templates → backend/templates}/hello-world/mcpServers/calculator.js +0 -0
- /package/dist/{templates → backend/templates}/hello-world/mcpServers/datetime.js +0 -0
- /package/dist/{templates → backend/templates}/hello-world/package.json +0 -0
- /package/dist/{templates → backend/templates}/hello-world/xiaozhi.config.json +0 -0
- /package/dist/{templates → backend/templates}/json5/mcpServers/calculator.js +0 -0
- /package/dist/{templates → backend/templates}/json5/mcpServers/datetime.js +0 -0
- /package/dist/{templates → backend/templates}/json5/package.json +0 -0
- /package/dist/{templates → backend/templates}/json5/xiaozhi.config.json5 +0 -0
- /package/dist/{templates → backend/templates}/jsonc/mcpServers/calculator.js +0 -0
- /package/dist/{templates → backend/templates}/jsonc/mcpServers/datetime.js +0 -0
- /package/dist/{templates → backend/templates}/jsonc/package.json +0 -0
- /package/dist/{templates → backend/templates}/jsonc/xiaozhi.config.jsonc +0 -0
- /package/dist/{templates → backend/templates}/modelscope/xiaozhi.config.json +0 -0
- /package/{docs/images/coze-workflow/get-parameter.png → dist/docs/_next/static/media/get-parameter.62eee93d.png} +0 -0
- /package/{docs → dist/docs}/images/add-to-cherry-studio/step-1.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cherry-studio/step-2.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cherry-studio/step-3.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cherry-studio/step-4.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cherry-studio/step-5.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cursor/step-1.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cursor/step-2.png +0 -0
- /package/{docs → dist/docs}/images/add-to-cursor/step-3.png +0 -0
- /package/{docs → dist/docs}/images/coze-workflow/config-workflow-step-1.png +0 -0
- /package/{docs → dist/docs}/images/coze-workflow/config-workflow-step-2.png +0 -0
- /package/{docs → dist/docs}/images/coze-workflow/config-workflow-step-3.png +0 -0
- /package/{docs → dist/docs}/images/integrate-to-cherry-studio.png +0 -0
- /package/{docs → dist/docs}/images/integrate-to-cursor.png +0 -0
- /package/{docs → dist/docs}/images/modelscope/step-1.png +0 -0
- /package/{docs → dist/docs}/images/modelscope/step-2.png +0 -0
- /package/{docs → dist/docs}/images/modelscope/step-3.png +0 -0
- /package/{docs → dist/docs}/images/modelscope/step-4.png +0 -0
- /package/{docs → dist/docs}/images/preview.png +0 -0
- /package/{docs → dist/docs}/images/use-multi-xiaozhi-mcp-endpoints/step-1.png +0 -0
- /package/{docs → dist/docs}/images/use-multi-xiaozhi-mcp-endpoints/step-2.png +0 -0
- /package/{docs → dist/docs}/images/use-multi-xiaozhi-mcp-endpoints/step-3.png +0 -0
- /package/{docs → dist/docs}/images/use-multi-xiaozhi-mcp-endpoints/step-4.png +0 -0
- /package/{docs → dist/docs}/images/use-multi-xiaozhi-mcp-endpoints/step-5.png +0 -0
- /package/{docs → dist/docs}/images/web-ui-preview.png +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/form-utils-h64o2Nyg.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/index-88NfCOo9.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/index-P6Zq3MZF.css +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/radix-ui-BA32w1ww.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/react-vendor-DrjkXih1.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/utils-CiPelQLP.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/assets/vendor-DK9yaMt3.js +0 -0
- /package/{apps/frontend/dist → dist/frontend}/index.html +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 项目架构
|
|
3
|
-
sidebarTitle: 项目架构
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
```mermaid
|
|
7
|
-
graph TB
|
|
8
|
-
subgraph ProjectComponents["🏗️ xiaozhi-client"]
|
|
9
|
-
Core["🔧 核心服务<br/>(Core Service)<br/>MCP Server/Client"]
|
|
10
|
-
Web["🌐 Web管理界面<br/>(Supervisor)"]
|
|
11
|
-
CLI["💻 命令行工具<br/>(CLI)"]
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
subgraph Hardware["📱 硬件设备"]
|
|
15
|
-
ESP32["🎙️ xiaozhi-esp32<br/>(语音互动设备)"]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
subgraph MCPClients["💼 MCP客户端"]
|
|
19
|
-
Cursor["Cursor"]
|
|
20
|
-
Cherry["Cherry Studio"]
|
|
21
|
-
OtherClient["其他客户端"]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
subgraph External["☁️ 外部服务"]
|
|
25
|
-
XiaozhiMe["🌐 xiaozhi.me<br/>(原有服务端)"]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
subgraph MCPServices["🔌 MCP服务集群"]
|
|
29
|
-
direction LR
|
|
30
|
-
MCP1["🏠 Local MCP<br/>(本地服务)"]
|
|
31
|
-
MCP2["🌍 Remote MCP<br/>(远程服务)"]
|
|
32
|
-
MCP3["🤖 ModelScope MCP<br/>(模型服务)"]
|
|
33
|
-
MCPn["⚡ Other MCP<br/>(其他服务)"]
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
%% 新的MCP客户端连接 (重要)
|
|
37
|
-
Cursor ==>|"MCP协议"| Core
|
|
38
|
-
Cherry ==>|"MCP协议"| Core
|
|
39
|
-
OtherClient ==>|"MCP协议"| Core
|
|
40
|
-
|
|
41
|
-
%% ESP32连接链路
|
|
42
|
-
ESP32 -.->|"直连"| Core
|
|
43
|
-
ESP32 -->|"原有链路"| XiaozhiMe
|
|
44
|
-
XiaozhiMe --> Core
|
|
45
|
-
|
|
46
|
-
%% Core Service到MCP服务
|
|
47
|
-
Core ==> MCP1
|
|
48
|
-
Core ==> MCP2
|
|
49
|
-
Core ==> MCP3
|
|
50
|
-
Core ==> MCPn
|
|
51
|
-
|
|
52
|
-
%% 项目内部管理连接
|
|
53
|
-
Web -.-> Core
|
|
54
|
-
CLI -.-> Core
|
|
55
|
-
|
|
56
|
-
%% 样式定义
|
|
57
|
-
classDef coreComponent stroke:#2980b9,stroke-width:3px,fill:#ebf3fd,color:#2c3e50
|
|
58
|
-
classDef hardware stroke:#e74c3c,stroke-width:2px,fill:#fdedec,color:#2c3e50
|
|
59
|
-
classDef external stroke:#8e44ad,stroke-width:2px,fill:#f4ecf7,color:#2c3e50
|
|
60
|
-
classDef mcp stroke:#27ae60,stroke-width:2px,fill:#eafaf1,color:#2c3e50
|
|
61
|
-
classDef mcpClient stroke:#f39c12,stroke-width:2px,fill:#fef9e7,color:#2c3e50
|
|
62
|
-
classDef primaryFlow stroke:#27ae60,stroke-width:4px
|
|
63
|
-
classDef secondaryFlow stroke:#95a5a6,stroke-width:2px
|
|
64
|
-
|
|
65
|
-
class Core,Web,CLI coreComponent
|
|
66
|
-
class ESP32 hardware
|
|
67
|
-
class XiaozhiMe external
|
|
68
|
-
class MCP1,MCP2,MCP3,MCPn mcp
|
|
69
|
-
class Cursor,Cherry,OtherClient mcpClient
|
|
70
|
-
|
|
71
|
-
```
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Docker 镜像构建指南
|
|
3
|
-
description: 小智客户端 Docker 容器化构建的完整指南,适用于贡献者和开发者
|
|
4
|
-
sidebar_position: 3
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Docker 镜像构建指南
|
|
8
|
-
|
|
9
|
-
本文档详细介绍小智客户端项目的 Docker 容器化架构和构建流程,帮助贡献者和开发者理解项目的容器化设计理念和参与开发。
|
|
10
|
-
|
|
11
|
-
## 📋 目录
|
|
12
|
-
|
|
13
|
-
- [项目 Docker 架构概览](#项目-docker-架构概览)
|
|
14
|
-
- [构建文件详解](#构建文件详解)
|
|
15
|
-
- [核心机制解析](#核心机制解析)
|
|
16
|
-
- [开发工作流](#开发工作流)
|
|
17
|
-
- [故障排除指南](#故障排除指南)
|
|
18
|
-
|
|
19
|
-
## 🏗️ 项目 Docker 架构概览
|
|
20
|
-
|
|
21
|
-
### 设计理念
|
|
22
|
-
|
|
23
|
-
小智客户端采用**双环境 Docker 架构**,针对不同的使用场景提供了专门的解决方案:
|
|
24
|
-
|
|
25
|
-
- **生产环境**:基于预发布包,提供开箱即用的稳定体验
|
|
26
|
-
- **开发环境**:支持本地构建,便于调试和功能开发
|
|
27
|
-
|
|
28
|
-
### 目录结构
|
|
29
|
-
|
|
30
|
-
项目将 Docker 相关文件组织在独立的 `docker/` 目录中:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
docker/
|
|
34
|
-
├── .dockerignore # 生产环境构建忽略文件
|
|
35
|
-
├── .dockerignore.dev # 开发环境构建忽略文件
|
|
36
|
-
├── Dockerfile # 生产环境镜像构建文件
|
|
37
|
-
├── Dockerfile.dev # 开发环境镜像构建文件
|
|
38
|
-
├── docker-compose.yml # 生产环境容器编排
|
|
39
|
-
├── docker-compose.dev.yml # 开发环境容器编排
|
|
40
|
-
├── scripts/ # 脚本文件
|
|
41
|
-
│ ├── entrypoint.sh # 容器启动初始化脚本
|
|
42
|
-
│ ├── start.sh # 一键启动脚本
|
|
43
|
-
│ └── update-version.js # 版本号自动更新脚本
|
|
44
|
-
└── templates/ # 模板文件
|
|
45
|
-
├── mcpServers/ # MCP 服务器模板
|
|
46
|
-
├── package.json # 项目模板配置
|
|
47
|
-
├── requirements.txt # Python 依赖模板
|
|
48
|
-
└── xiaozhi.config.json # 配置文件模板
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 架构特点
|
|
52
|
-
|
|
53
|
-
```mermaid
|
|
54
|
-
graph TD
|
|
55
|
-
A[小智客户端 Docker 架构] --> B[生产环境]
|
|
56
|
-
A --> C[开发环境]
|
|
57
|
-
|
|
58
|
-
B --> D[基于预发布包]
|
|
59
|
-
B --> E[自动化构建]
|
|
60
|
-
B --> F[多平台支持]
|
|
61
|
-
|
|
62
|
-
C --> G[本地源码构建]
|
|
63
|
-
C --> H[开发工具集成]
|
|
64
|
-
C --> I[热重载支持]
|
|
65
|
-
|
|
66
|
-
D --> J[快速部署]
|
|
67
|
-
E --> K[CI/CD 自动化]
|
|
68
|
-
F --> L[ARM64/AMD64]
|
|
69
|
-
|
|
70
|
-
G --> M[调试友好]
|
|
71
|
-
H --> N[开发效率]
|
|
72
|
-
I --> O[实时更新]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## 📦 构建文件详解
|
|
76
|
-
|
|
77
|
-
### 关键差异
|
|
78
|
-
|
|
79
|
-
| 特性 | 生产环境 | 开发环境 |
|
|
80
|
-
|------|---------|---------|
|
|
81
|
-
| **基础包** | xiaozhi-client 预发布包 | 本地源码构建 |
|
|
82
|
-
| **用户权限** | root 用户运行 | 非 root 用户(后续会保持一致) |
|
|
83
|
-
| **Python 环境** | 完整虚拟环境 | 无 Python 环境(后续会保持一致) |
|
|
84
|
-
| **启动方式** | 直接运行可执行文件 | 通过源码运行 |
|
|
85
|
-
| **调试支持** | 基础日志 | 完整开发工具链 |
|
|
86
|
-
|
|
87
|
-
## ⚙️ 核心机制解析
|
|
88
|
-
|
|
89
|
-
### 容器启动流程
|
|
90
|
-
|
|
91
|
-
`entrypoint.sh` 脚本实现了智能的容器初始化流程:
|
|
92
|
-
|
|
93
|
-
```mermaid
|
|
94
|
-
graph TD
|
|
95
|
-
A[容器启动] --> B{检查工作目录状态}
|
|
96
|
-
B -->|无配置文件| C[初始化工作目录]
|
|
97
|
-
B -->|已有配置| D[跳过初始化]
|
|
98
|
-
|
|
99
|
-
C --> E[复制模板文件]
|
|
100
|
-
E --> F[检查 Node.js 依赖]
|
|
101
|
-
D --> F
|
|
102
|
-
|
|
103
|
-
F -->|无 node_modules| G[安装依赖]
|
|
104
|
-
F -->|已存在| H[跳过安装]
|
|
105
|
-
G --> H
|
|
106
|
-
|
|
107
|
-
H --> I[检查 Python 依赖]
|
|
108
|
-
I -->|有自定义 requirements.txt| J[安装用户依赖]
|
|
109
|
-
I -->|无自定义文件| K[检查默认依赖]
|
|
110
|
-
|
|
111
|
-
J --> L[清理 PID 文件]
|
|
112
|
-
K -->|缺少基础包| M[安装默认依赖]
|
|
113
|
-
K -->|基础包存在| L
|
|
114
|
-
M --> L
|
|
115
|
-
|
|
116
|
-
L --> N[启动 xiaozhi-client]
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 版本管理
|
|
120
|
-
|
|
121
|
-
`update-version.js` 脚本实现了版本号的自动同步:
|
|
122
|
-
|
|
123
|
-
```javascript
|
|
124
|
-
// 自动更新 Dockerfile 中的版本号
|
|
125
|
-
const version = process.argv[2] || require('../../package.json').version;
|
|
126
|
-
|
|
127
|
-
// 更新生产环境 Dockerfile
|
|
128
|
-
const dockerfileContent = fs.readFileSync(dockerfilePath, 'utf8')
|
|
129
|
-
.replace(/ARG XIAOZHI_VERSION=.*$/, `ARG XIAOZHI_VERSION=${version}`);
|
|
130
|
-
|
|
131
|
-
// 更新 docker-compose 版本标签
|
|
132
|
-
const composeContent = fs.readFileSync(composePath, 'utf8')
|
|
133
|
-
.replace(/image: shenjingnan\/xiaozhi-client:.*$/, `image: shenjingnan/xiaozhi-client:${version}`);
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## 🚀 开发工作流
|
|
137
|
-
|
|
138
|
-
### 本地开发环境
|
|
139
|
-
|
|
140
|
-
1. **构建开发镜像**:
|
|
141
|
-
```bash
|
|
142
|
-
cd docker/
|
|
143
|
-
docker build -f Dockerfile.dev -t xiaozhi-client:dev .
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
2. **启动开发容器**:
|
|
147
|
-
```bash
|
|
148
|
-
docker-compose -f docker-compose.dev.yml up --build
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
3. **调试和开发**:
|
|
152
|
-
```bash
|
|
153
|
-
# 查看容器日志
|
|
154
|
-
docker logs -f xiaozhi-client-dev
|
|
155
|
-
|
|
156
|
-
# 进入容器调试
|
|
157
|
-
docker exec -it xiaozhi-client-dev /bin/bash
|
|
158
|
-
|
|
159
|
-
# 重新构建并启动
|
|
160
|
-
docker-compose -f docker-compose.dev.yml up --build --force-recreate
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### 生产环境部署
|
|
164
|
-
|
|
165
|
-
1. **构建生产镜像**:
|
|
166
|
-
```bash
|
|
167
|
-
# 指定版本号构建
|
|
168
|
-
docker build --build-arg XIAOZHI_VERSION=1.6.1 -t shenjingnan/xiaozhi-client:1.6.1 .
|
|
169
|
-
|
|
170
|
-
# 多平台构建(支持 ARM64 和 AMD64)
|
|
171
|
-
docker buildx build --platform linux/amd64,linux/arm64 \
|
|
172
|
-
--build-arg XIAOZHI_VERSION=1.6.1 \
|
|
173
|
-
-t shenjingnan/xiaozhi-client:1.6.1 \
|
|
174
|
-
--push .
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
2. **使用 Docker Compose**:
|
|
178
|
-
```bash
|
|
179
|
-
# 使用默认配置启动
|
|
180
|
-
docker-compose up -d
|
|
181
|
-
|
|
182
|
-
# 指定版本启动
|
|
183
|
-
XIAOZHI_VERSION=1.6.1 docker-compose up -d
|
|
184
|
-
|
|
185
|
-
# 查看服务状态
|
|
186
|
-
docker-compose ps
|
|
187
|
-
docker-compose logs -f
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### 版本发布流程
|
|
191
|
-
|
|
192
|
-
1. **更新版本号**:
|
|
193
|
-
```bash
|
|
194
|
-
# 使用项目脚本自动更新
|
|
195
|
-
pnpm docker:update-version 1.6.2
|
|
196
|
-
|
|
197
|
-
# 手动更新 package.json 和相关文件
|
|
198
|
-
npm version patch
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
2. **自动化构建**:
|
|
202
|
-
|
|
203
|
-
使用 Github 工作流 `.github/workflows/docker-publish.yml`
|
|
204
|
-
|
|
205
|
-
## 调试技巧
|
|
206
|
-
|
|
207
|
-
1. **查看详细日志**:
|
|
208
|
-
```bash
|
|
209
|
-
# 启动时显示详细日志
|
|
210
|
-
docker run --rm -it shenjingnan/xiaozhi-client:latest xiaozhi --help
|
|
211
|
-
|
|
212
|
-
# 实时查看容器日志
|
|
213
|
-
docker logs -f --tail=100 xiaozhi-client
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
2. **进入容器调试**:
|
|
217
|
-
```bash
|
|
218
|
-
# 进入运行中的容器
|
|
219
|
-
docker exec -it xiaozhi-client /bin/bash
|
|
220
|
-
|
|
221
|
-
# 检查环境配置
|
|
222
|
-
docker exec xiaozhi-client env | grep XIAOZHI
|
|
223
|
-
docker exec xiaozhi-client cat /workspaces/xiaozhi.config.json
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
3. **网络连接测试**:
|
|
227
|
-
```bash
|
|
228
|
-
# 测试容器内网络连接
|
|
229
|
-
docker exec xiaozhi-client curl -I http://localhost:9999
|
|
230
|
-
|
|
231
|
-
# 检查端口映射
|
|
232
|
-
docker port xiaozhi-client
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## 📚 参考资料
|
|
236
|
-
|
|
237
|
-
- [Docker 官方文档](https://docs.docker.com/)
|
|
238
|
-
- [Docker Compose 文档](https://docs.docker.com/compose/)
|
|
239
|
-
- [Node.js 最佳实践](https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md)
|
|
240
|
-
- [小智客户端部署文档](/docs/usage/docker)
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## 💡 参与贡献
|
|
245
|
-
|
|
246
|
-
欢迎参与小智客户端的 Docker 相关开发!请参考以下资源:
|
|
247
|
-
|
|
248
|
-
- **提交 Issue**:在 GitHub 上报告 Bug 或提出功能建议
|
|
249
|
-
- **提交 PR**:贡献代码改进和文档更新
|
|
250
|
-
- **讨论交流**:参与技术讨论和方案设计
|
|
251
|
-
|
|
252
|
-
在提交 Docker 相关的改动时,请确保:
|
|
253
|
-
- 遵循现有的文件组织结构
|
|
254
|
-
- 添加适当的注释和文档
|
|
255
|
-
- 测试在不同环境下的兼容性
|
|
256
|
-
- 保持与现有 CI/CD 流程的一致性
|