首页 / 源码构建
从源码构建
适用于:无法或不愿直接拉取 GHCR 镜像、需要审计构建过程、或希望自定义镜像的场景。
前提
- Node.js ≥ 20(前端构建)、Docker(镜像构建)
- 能访问 npm registry(前端依赖)
构建 console 镜像
git clone https://github.com/nghqqa/MergePilot.git
cd MergePilot && git checkout v0.2.0-beta.6-rc.16 # 与官方镜像同源的源码 tag
# ① 先构建前端产物(Dockerfile 会 COPY console/frontend/dist)
cd console/frontend && npm ci && npm run build && cd ../..
# ② 构建镜像(版本号决定 /api/health 的 version 字段)
docker build -f docker/Dockerfile.canonical-console \
--build-arg MERGEPILOT_VERSION=0.2.0-beta.6-rc.16 \
-t mergepilot-console:v0.2.0-beta.6-rc.16 .
两个常见坑:① 忘记先构建
console/frontend/dist(COPY 会失败);
② 忘记 --build-arg MERGEPILOT_VERSION(健康检查会报旧 fallback 版本号)。可复现性
同 commit + 同构建参数下镜像内容一致。官方 digest
sha256:f0b30fd1…3897 的构建源即 tag v0.2.0-beta.6-rc.16
(commit a68057f28b)。自建镜像的 image ID 会因构建时间戳与官方不同,
但功能等价;若需要与官方逐位一致,请直接使用官方 digest 拉取。
接入 compose
编辑 deploy/selfhost/docker-compose.yml,把 console 的
image: 改为你的本地引用:
image: mergepilot-console:v0.2.0-beta.6-rc.16
其余配置不变。
离线 tar 途径
无法访问 GHCR 时,可使用离线 tar(SHA256 见
下载与校验):docker load -i mergepilot-console-rc16.tar,
加载后镜像 ID 与官方 digest 拉取完全一致。