提交qiming-mcp-proxy

This commit is contained in:
Codex
2026-06-01 13:03:20 +08:00
parent 9e9486b7c2
commit afb3d9f4e6
394 changed files with 124494 additions and 0 deletions

View File

@@ -0,0 +1,198 @@
# Docker 配置说明
本目录包含 mcp-proxy 项目的所有 Docker 相关配置文件,与线上环境保持依赖一致。
## 文件说明
### Dockerfile.mcp-proxy
mcp-proxy 的 Docker 构建文件,采用多阶段构建:
**构建阶段:**
- 基础镜像:`rust:1.90`
- 设置时区:`Asia/Shanghai`
- 构建命令:`cargo build --release --bin mcp-proxy`
**运行阶段:**
- 基础镜像:`rust:1.90`
- 包含完整的运行时环境(与线上环境一致)
- 支持 Node.js 22.x、Python 3、Deno、Go 1.24.3
### Dockerfile.document-parser
document-parser 和 voice-cli 的 Docker 构建文件,采用多阶段构建:
**构建阶段:**
- 基础镜像:`rust:1.90`
- 构建命令:`cargo build --release`
**运行阶段:**
- 使用 `scratch` 基础镜像(最小化镜像)
- 支持两个目标:
- `runtime` - document-parser 运行时
- `runtime-voice-cli` - voice-cli 运行时
- `export` - 导出所有二进制文件
### config.yml
mcp-proxy 的默认配置文件。
### docker-compose.yml
Docker Compose 配置文件,用于快速启动 mcp-proxy 服务。
### .npmrc
npm 国内镜像源配置(淘宝镜像),用于 Node.js 包管理:
```ini
registry=https://registry.npmmirror.com/
```
### pip.conf
pip 国内镜像源配置(清华大学镜像),用于 Python 包管理:
```ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
```
## 运行时环境
### mcp-proxy 容器
| 环境 | 版本 | 用途 |
|------|------|------|
| Rust | 1.90 | 基础运行时 |
| Node.js | 22.x | run_code 功能执行 Node.js 代码 |
| Python | 3.x + uv | run_code 功能执行 Python 代码 |
| Deno | 最新版 | run_code 功能执行 TypeScript/JavaScript 代码 |
| Go | 1.24.3 | run_code 功能执行 Go 代码 |
### 额外工具
| 工具 | 用途 |
|------|------|
| ffmpeg | 音视频处理 |
| vim | 文本编辑 |
| net-tools | 网络工具 |
| telnet | 网络调试 |
| wget | 文件下载 |
### document-parser/voice-cli 容器
使用 `scratch` 基础镜像,仅包含二进制文件,无额外依赖。
## 国内镜像源配置
容器内已配置以下国内镜像源:
| 工具 | 镜像源 | 配置位置 |
|------|--------|----------|
| npm | 淘宝镜像 | `/root/.npmrc` |
| pip | 清华大学镜像 | `/etc/pip.conf` |
| uv | 阿里云镜像 | `UV_INDEX_URL` 环境变量 |
## Go MCP 工具
mcp-proxy 容器内预装了 `go-mcp-mysql` 工具用于测试:
```bash
go install -v github.com/Zhwt/go-mcp-mysql@latest
```
## 使用方法
### 构建 mcp-proxy 镜像
```bash
# 使用 docker build
docker build -f docker/Dockerfile.mcp-proxy -t mcp-proxy:latest ..
# 或使用 Make 命令
make build-image
# 构建 ARM64 镜像
docker build -f docker/Dockerfile.mcp-proxy --platform linux/arm64 -t mcp-proxy:latest ..
```
### 构建 document-parser 镜像
```bash
# 使用 docker build
docker build -f docker/Dockerfile.document-parser --target runtime -t document-parser:latest ..
# 或使用 Make 命令
make build-image-document-parser
# 构建 voice-cli 镜像
docker build -f docker/Dockerfile.document-parser --target runtime-voice-cli -t voice-cli:latest ..
```
### 使用 docker-compose推荐
```bash
# 启动服务
cd docker && docker-compose up
# 后台启动
cd docker && docker-compose up -d
# 查看日志
cd docker && docker-compose logs -f
# 停止服务
cd docker && docker-compose down
```
### 使用 Make 命令
```bash
# mcp-proxy 相关
make build-mcp-proxy-x86_64 # 构建 mcp-proxy x86_64 版本
make build-image # 构建 mcp-proxy Docker 镜像
make run-compose # 使用 docker-compose 启动
# document-parser 相关
make build-document-parser-x86_64 # 构建 document-parser x86_64 版本
make build-image-document-parser # 构建 document-parser Docker 镜像
# voice-cli 相关
make build-voice-cli-x86_64 # 构建 voice-cli x86_64 版本
```
## 环境变量
### mcp-proxy 容器
| 环境变量 | 说明 | 默认值 |
|----------|------|--------|
| RUST_LOG | 日志级别 | info |
| TZ | 时区 | Asia/Shanghai |
| UV_INDEX_URL | uv 镜像源 | https://mirrors.aliyun.com/pypi/simple |
## 挂载目录
### mcp-proxy 容器
- `./config.yml` - 配置文件(只读)
- `./logs` - 日志目录(持久化)
## 健康检查
mcp-proxy 容器包含健康检查,定期检查 `/health` 端点:
- 检查间隔30 秒
- 超时时间10 秒
- 重试次数3 次
- 启动等待5 秒
## 线上环境一致性
本目录的 Dockerfile 与线上环境保持依赖一致:
- `Dockerfile.mcp-proxy` 对应 `/Volumes/soddygo/git_work/build-agent-docker/build_config/mcp_proxy/Dockerfile`
## 目录结构
```
docker/
├── Dockerfile.mcp-proxy # mcp-proxy Docker 构建文件
├── Dockerfile.document-parser # document-parser/voice-cli Docker 构建文件
├── config.yml # mcp-proxy 默认配置
├── docker-compose.yml # Docker Compose 配置
├── .npmrc # npm 国内镜像源配置
├── pip.conf # pip 国内镜像源配置
└── README.md # 本文档
```