# MIXAPI Docker 镜像构建说明 - 海外版本 本目录包含在海外服务器上构建 MIXAPI Docker 镜像的相关文件,直连 GitHub 无需代理。 ## 文件说明 | 文件 | 说明 | |------|------| | `Dockerfile` | Docker 镜像构建文件(基于 debian:stable-slim) | | `common.sh` | 公共函数库(变量定义、下载函数等,支持 GITHUB_PROXY 环境变量) | | `run.sh` | 主启动脚本(构建时下载初始版本、运行时设置定时任务) | | `check_update.sh` | 更新检测脚本(由 crontab 定时调用) | | `buildDockerImage_apq2.ps1` | Windows 构建脚本(远程构建并推送) | ## 构建方法 ```bash # 进入海外版本目录 cd mixapi/overseas # 构建镜像 docker build -t mixapi:latest . # 多架构构建(需要 buildx) docker buildx build --platform linux/amd64,linux/arm64 -t mixapi:latest --push . ``` ## 运行方法 ```bash # 基本运行(直连 GitHub) docker run -d -p 3000:3000 mixapi:latest # 使用 GitHub 代理(如需要) docker run -d -p 3000:3000 -e GITHUB_PROXY=https://ghfast.top mixapi:latest # 挂载数据目录 docker run -d -p 3000:3000 -v /path/to/data:/data mixapi:latest ``` ## 工作原理 ### 构建时 1. 使用 `busybox:glibc` 作为基础镜像(自带 wget、crond、sh) 2. 复制脚本文件到 `/app/` 目录 3. 运行 `run.sh OnlyUpdate` 下载当前最新版本的 MIXAPI ### 运行时 1. 设置 crontab 定时任务(每天执行一次更新检测) 2. 启动 busybox crond 后台服务 3. 后台执行一次更新检测 4. 前台启动 MIXAPI 服务 ### 定时更新 - 每天在容器启动时间的上一分钟执行更新检测 - 检测到新版本时自动下载并热更新 - 更新日志记录在 `/app/update.log` ## 网络配置 | 项目 | 默认配置 | |------|----------| | GitHub API | `https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest` | | 文件下载 | `https://github.com/aiprodcoder/MIXAPI/releases/download/` | ### 环境变量 支持通过环境变量 `GITHUB_PROXY` 设置代理: ```bash # 不使用代理(默认) docker run -d mixapi:latest # 使用代理 docker run -d -e GITHUB_PROXY=https://ghfast.top mixapi:latest ``` 设置代理后,URL 会变为: - GitHub API: `${GITHUB_PROXY}/https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest` - 文件下载: `${GITHUB_PROXY}/https://github.com/aiprodcoder/MIXAPI/releases/download/` ## 支持架构 - `linux/amd64` (x86_64) - `linux/arm64` (aarch64) ## 端口 - `3000`: MIXAPI 服务端口 ## 数据目录 - `/data`: 工作目录,建议挂载持久化存储 - `/app`: 程序目录,包含可执行文件和脚本