# ============================================================ # MIXAPI 镜像 — 官方无 Docker Hub 镜像,本文件从 GitHub Release # 下载官方编译好的二进制构建(与上游仓库 Dockerfile 思路一致)。 # # build:: docker build --build-arg MIXAPI_VER=v2.5.1cl -t mixapi:v2.5.1cl . # run:: docker run --name mixapi -d --restart always -p 3000:3000 \ # -v /data/volumes/mixapi/data:/data -e TZ=Asia/Shanghai mixapi:v2.5.1cl # # disc:: MIXAPI_VER 需与 GitHub release tag 同名,二进制命名规则: # mixapi-${MIXAPI_VER}-linux-${amd64|arm64} # disc:: 数据目录:容器内工作目录为 /data(不配置 SQL_DSN 时默认使用 # /data/one-api.db 的 SQLite;--log-dir 未指定时日志在 /data/logs) # ============================================================ FROM alpine:3.21 # wget 下载二进制 + 健康检查;tzdata 保证 TZ=Asia/Shanghai 时区生效;ca-certificates 保证 HTTPS RUN apk add --no-cache wget ca-certificates tzdata \ && rm -rf /var/cache/apk/* WORKDIR /app # 版本号(与 release tag 同名),可用 --build-arg 覆盖 ARG MIXAPI_VER=v2.5.1cl # 架构后缀,留空则按构建机架构自动识别(amd64/arm64) ARG MIXAPI_ARCH= RUN set -eux; \ if [ -z "${MIXAPI_ARCH}" ]; then \ case "$(apk --print-arch)" in \ x86_64) MIXAPI_ARCH=amd64 ;; \ aarch64) MIXAPI_ARCH=arm64 ;; \ *) echo "不支持的架构: $(apk --print-arch)" >&2; exit 1 ;; \ esac; \ fi; \ wget -O mixapi "https://github.com/aiprodcoder/MIXAPI/releases/download/${MIXAPI_VER}/mixapi-${MIXAPI_VER}-linux-${MIXAPI_ARCH}"; \ chmod +x mixapi # 数据/日志工作目录(与上游 Dockerfile 约定一致) WORKDIR /data EXPOSE 3000 # 用 ENTRYPOINT 便于 compose 追加参数(如 --log-dir /app/logs) ENTRYPOINT ["/app/mixapi"]