README.md 3.3 KB

MIXAPI Docker 镜像构建说明 - 国内版本

本目录包含在国内服务器上构建 MIXAPI Docker 镜像的相关文件,针对国内网络环境做了优化。

文件说明

文件 说明
Dockerfile Docker 镜像构建文件(使用华为云镜像源,基于 debian:stable-slim)
common.sh 公共函数库(使用 GitHub 代理加速)
run.sh 主启动脚本(构建时下载初始版本、运行时设置定时任务)
check_update.sh 更新检测脚本(由 crontab 定时调用)
buildDockerImage_u24_docker.ps1 Windows 构建脚本(远程构建并推送)

构建方法

# 进入国内版本目录
cd mixapi/china

# 构建镜像
docker build -t mixapi:latest .

# 多架构构建(需要 buildx)
docker buildx build --platform linux/amd64,linux/arm64 -t mixapi:latest --push .

运行方法

# 基本运行(使用默认代理 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 基础镜像加速

使用华为云镜像源拉取基础镜像:

原始镜像 加速镜像
debian:stable-slim swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/debian:stable-slim

注:使用 debian:stable-slim 而非 busybox:glibc,因为 busybox 不支持 QEMU 模拟,无法进行多架构构建。

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 覆盖默认代理:

# 使用默认代理
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: 程序目录,包含可执行文件和脚本