Files
deploy.stack/mixapi/Dockerfile
T
cnphpbb 9b823ba34e docs(mixapi): 补充 buildx 多架构构建并调整镜像仓库
- Dockerfile/compose 头部与 readme 补充 buildx 多架构(amd64+arm64)构建示例
- IMAGE_TAG 默认改指私有仓库 hub.6t7.net/cnphpbb/mixapi 并同步各处 tag
2026-09-03 21:54:10 +08:00

50 lines
2.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# MIXAPI 镜像 — 官方无 Docker Hub 镜像,本文件从 GitHub Release
# 下载官方编译好的二进制构建(与上游仓库 Dockerfile 思路一致)。
#
# build:: docker build --build-arg MIXAPI_VER=v2.5.1cl -t hub.6t7.net/cnphpbb/mixapi:v2.5.1cl .
# -t tag 需与 env.cfg 的 IMAGE_TAG 保持一致)
# buildx:: docker buildx build --platform linux/amd64,linux/arm64 \
# --build-arg MIXAPI_VER=v2.5.1cl \
# -t hub.6t7.net/cnphpbb/mixapi:v2.5.1cl --push .
# run:: docker run --name mixapi -d --restart always -p 3000:3000 \
# -v /data/volumes/mixapi/data:/data -e TZ=Asia/Shanghai hub.6t7.net/cnphpbb/mixapi:v2.5.1cl
#
# disc:: MIXAPI_VER 需与 GitHub release tag 同名,二进制命名规则:
# mixapi-${MIXAPI_VER}-linux-${amd64|arm64}
# disc:: 多平台构建时每个 --platform 的 RUN 阶段都会按 apk --print-arch
# 自动下载对应架构二进制(需 QEMU/binfmt;也可 --build-arg MIXAPI_ARCH 显式指定)
# disc:: 数据目录:容器内工作目录为 /data(不配置 SQL_DSN 时默认使用
# /data 下的 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"]