|
|
@@ -0,0 +1,116 @@
|
|
|
+# MIXAPI Docker 镜像构建说明 - 国内版本
|
|
|
+
|
|
|
+本目录包含在国内服务器上构建 MIXAPI Docker 镜像的相关文件,针对国内网络环境做了优化。
|
|
|
+
|
|
|
+## 文件说明
|
|
|
+
|
|
|
+| 文件 | 说明 |
|
|
|
+|------|------|
|
|
|
+| `Dockerfile` | Docker 镜像构建文件(使用华为云镜像源) |
|
|
|
+| `common.sh` | 公共函数库(使用 GitHub 代理加速) |
|
|
|
+| `run.sh` | 主启动脚本(构建时下载初始版本、运行时设置定时任务) |
|
|
|
+| `check_update.sh` | 更新检测脚本(由 crontab 定时调用) |
|
|
|
+
|
|
|
+## 构建方法
|
|
|
+
|
|
|
+```bash
|
|
|
+# 进入国内版本目录
|
|
|
+cd mixapi/china
|
|
|
+
|
|
|
+# 构建镜像
|
|
|
+docker build -t mixapi:latest .
|
|
|
+
|
|
|
+# 多架构构建(需要 buildx)
|
|
|
+docker buildx build --platform linux/amd64,linux/arm64 -t mixapi:latest --push .
|
|
|
+```
|
|
|
+
|
|
|
+## 运行方法
|
|
|
+
|
|
|
+```bash
|
|
|
+# 基本运行(使用默认代理 ghfast.top)
|
|
|
+docker run -d -p 3000:3000 mixapi:latest
|
|
|
+
|
|
|
+# 使用自定义 GitHub 代理
|
|
|
+docker run -d -p 3000:3000 -e GITHUB_PROXY=https://mirror.ghproxy.com mixapi:latest
|
|
|
+
|
|
|
+# 挂载数据目录
|
|
|
+docker run -d -p 3000:3000 -v /path/to/data:/data mixapi:latest
|
|
|
+```
|
|
|
+
|
|
|
+## 国内加速优化
|
|
|
+
|
|
|
+### 1. Docker 基础镜像加速
|
|
|
+
|
|
|
+使用华为云镜像源拉取基础镜像:
|
|
|
+
|
|
|
+| 原始镜像 | 加速镜像 |
|
|
|
+|----------|----------|
|
|
|
+| `busybox:glibc` | `swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/busybox:glibc` |
|
|
|
+
|
|
|
+### 2. GitHub 代理加速
|
|
|
+
|
|
|
+通过代理加速 GitHub API 和文件下载:
|
|
|
+
|
|
|
+| 项目 | 配置 |
|
|
|
+|------|------|
|
|
|
+| 默认代理 | `https://ghfast.top` |
|
|
|
+| GitHub API | `${GITHUB_PROXY}/https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest` |
|
|
|
+| 文件下载 | `${GITHUB_PROXY}/https://github.com/aiprodcoder/MIXAPI/releases/download/` |
|
|
|
+
|
|
|
+### 3. 环境变量配置
|
|
|
+
|
|
|
+支持通过环境变量 `GITHUB_PROXY` 覆盖默认代理:
|
|
|
+
|
|
|
+```bash
|
|
|
+# 使用默认代理
|
|
|
+docker run -d mixapi:latest
|
|
|
+
|
|
|
+# 使用自定义代理
|
|
|
+docker run -d -e GITHUB_PROXY=https://ghproxy.net mixapi:latest
|
|
|
+
|
|
|
+# 不使用代理(直连,需要网络支持)
|
|
|
+docker run -d -e GITHUB_PROXY="" mixapi:latest
|
|
|
+```
|
|
|
+
|
|
|
+## 工作原理
|
|
|
+
|
|
|
+### 构建时
|
|
|
+1. 使用华为云镜像源拉取 `busybox:glibc` 基础镜像
|
|
|
+2. 复制脚本文件到 `/app/` 目录
|
|
|
+3. 运行 `run.sh OnlyUpdate` 通过代理下载当前最新版本的 MIXAPI
|
|
|
+
|
|
|
+### 运行时
|
|
|
+1. 设置 crontab 定时任务(每天执行一次更新检测)
|
|
|
+2. 启动 busybox crond 后台服务
|
|
|
+3. 后台执行一次更新检测(通过代理)
|
|
|
+4. 前台启动 MIXAPI 服务
|
|
|
+
|
|
|
+### 定时更新
|
|
|
+- 每天在容器启动时间的上一分钟执行更新检测
|
|
|
+- 检测到新版本时自动通过代理下载并热更新
|
|
|
+- 更新日志记录在 `/app/update.log`
|
|
|
+
|
|
|
+## 常用 GitHub 代理
|
|
|
+
|
|
|
+如果默认代理不可用,可以尝试以下代理:
|
|
|
+
|
|
|
+| 代理名称 | 地址 |
|
|
|
+|----------|------|
|
|
|
+| ghfast | `https://ghfast.top` |
|
|
|
+| ghproxy.net | `https://ghproxy.net` |
|
|
|
+| mirror.ghproxy.com | `https://mirror.ghproxy.com` |
|
|
|
+| gh-proxy.com | `https://gh-proxy.com` |
|
|
|
+
|
|
|
+## 支持架构
|
|
|
+
|
|
|
+- `linux/amd64` (x86_64)
|
|
|
+- `linux/arm64` (aarch64)
|
|
|
+
|
|
|
+## 端口
|
|
|
+
|
|
|
+- `3000`: MIXAPI 服务端口
|
|
|
+
|
|
|
+## 数据目录
|
|
|
+
|
|
|
+- `/data`: 工作目录,建议挂载持久化存储
|
|
|
+- `/app`: 程序目录,包含可执行文件和脚本
|