forked from DevOps/deploy.stack
docs(mixapi): 补充 buildx 多架构构建并调整镜像仓库
- Dockerfile/compose 头部与 readme 补充 buildx 多架构(amd64+arm64)构建示例 - IMAGE_TAG 默认改指私有仓库 hub.6t7.net/cnphpbb/mixapi 并同步各处 tag
This commit is contained in:
+24
-7
@@ -9,18 +9,35 @@ MIXAPI 基于 New-API/One-API 二次开发,配置语义与 `../newapi` 同源
|
||||
|
||||
MIXAPI 官方**没有发布 Docker Hub 镜像**:仓库 CI 与 README 的分发方式是
|
||||
GitHub Release 二进制(或自行 `docker build`)。本目录 `Dockerfile` 即采用
|
||||
官方方式——构建时从 GitHub Release 下载与 `IMAGE_TAG_VER` 同名的二进制:
|
||||
官方方式——构建时从 GitHub Release 下载与 `IMAGE_TAG_VER` 同名的二进制,
|
||||
`IMAGE_TAG` 默认指向私有仓库 `hub.6t7.net/cnphpbb/mixapi`:
|
||||
|
||||
```bash
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t mixapi:v2.5.1cl ./mixapi
|
||||
# 本地单架构构建(-t 与 env.cfg 的 IMAGE_TAG 一致;打同名 tag 后 compose 直接使用)
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t hub.6t7.net/cnphpbb/mixapi:v2.5.1cl ./mixapi
|
||||
```
|
||||
|
||||
- 版本号:`env.cfg` 中 `IMAGE_TAG_VER`(默认 `v2.5.1cl`),需与
|
||||
https://github.com/aiprodcoder/MIXAPI/releases 的 tag 同名;
|
||||
- 架构:构建机 x86_64 → amd64,aarch64 → arm64,跨架构构建可用
|
||||
`--build-arg MIXAPI_ARCH=amd64` 显式指定;
|
||||
- 若已把镜像推送到私有仓库(如 `hub.tp229.com:3500/mixapi`),把 `env.cfg`
|
||||
的 `IMAGE_TAG` 改为仓库地址,即可跳过本地构建,走常规 `pull`。
|
||||
- 换用其它私有仓库时,同步修改 `env.cfg` 的 `IMAGE_TAG` 与构建命令里的仓库地址。
|
||||
|
||||
### 多架构构建(buildx)
|
||||
|
||||
一台构建机同时产出 amd64 + arm64(如 x86_64 服务器 + 树莓派)并推送私有仓库时,
|
||||
用 buildx(多平台构建需 QEMU/binfmt,先 `docker buildx create --use`;
|
||||
多平台产物必须 `--push`,`--load` 只能装载本机架构镜像):
|
||||
|
||||
```bash
|
||||
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 ./mixapi
|
||||
```
|
||||
|
||||
推送完成后各主机直接 `docker compose ... up -d`(或先 `docker compose ... pull`)即可。
|
||||
|
||||
## 部署方式 A:全容器化独立栈(stack.yml)
|
||||
|
||||
@@ -31,8 +48,8 @@ docker build --build-arg MIXAPI_VER=v2.5.1cl -t mixapi:v2.5.1cl ./mixapi
|
||||
mkdir -pv /data/volumes/mixapi/{data,logs,redis,pgsql_data}
|
||||
cp mixapi/env.cfg.example mixapi/env.cfg && vim mixapi/env.cfg # 填密码
|
||||
|
||||
# 2. 构建镜像(首次或升级版本时)
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t mixapi:v2.5.1cl ./mixapi
|
||||
# 2. 构建镜像(首次或升级版本时;-t 与 env.cfg 的 IMAGE_TAG 一致)
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t hub.6t7.net/cnphpbb/mixapi:v2.5.1cl ./mixapi
|
||||
|
||||
# 3. 启动 / 状态 / 日志
|
||||
docker compose -p mixapi --env-file ./mixapi/env.cfg -f ./mixapi/stack.yml up -d
|
||||
@@ -60,7 +77,7 @@ CREATE DATABASE mixapi OWNER mixapi;
|
||||
```bash
|
||||
mkdir -pv /data/volumes/mixapi/{data,logs}
|
||||
cp mixapi/env.cfg.example mixapi/env.cfg && vim mixapi/env.cfg # 填 prod-postgres 密码
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t mixapi:v2.5.1cl ./mixapi
|
||||
docker build --build-arg MIXAPI_VER=v2.5.1cl -t hub.6t7.net/cnphpbb/mixapi:v2.5.1cl ./mixapi
|
||||
docker compose -p mixapi-host --env-file ./mixapi/env.cfg -f ./mixapi/stack.host.yml up -d
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user