feat: bundle multi-arch nginx for native fnOS stage 2

This commit is contained in:
2026-10-02 15:32:37 +08:00
parent 6725fc131d
commit b05098926c
6 changed files with 108 additions and 7 deletions
+29 -4
View File
@@ -11,22 +11,35 @@
构建过程不再引用 `F:\Fonu-main\havline`。
阶段一范围:
阶段二范围:
- Go 主程序原生运行
- 统一网关 `/app/havline`
- Unix Socket `app.sock`
- `cmd/main` 启动、停止和状态检查
- amd64 与 arm64 双架构二进制
- Nginx amd64 与 arm64 双架构二进制
- Nginx 依赖库与 `mime.types`
- HTTP 18080 与 HTTPS 9443
当前不包含:
- Nginx 二进制
- frpc
- cloudflared
这些依赖将在后续阶段加入。
## 构建前置条件
构建脚本需要本地存在用于提取 Nginx 的 Havline 镜像:
```text
jayhub.top/mrlee/havline:1.9.0 amd64
havline:1.9.0 arm64
```
如果本地没有对应架构镜像,先加载 amd64 与 arm64 镜像归档。
## 构建
```powershell
@@ -43,5 +56,17 @@ dist/havline-native-1.9.0.fpk
构建脚本会:
1. 使用 `VITE_BASE_PATH=/app/havline/` 构建前端;
2. 交叉编译 amd64 与 arm64 Go 二进制;
3. 调用 `fnpack build` 打包。
2. 从本地镜像提取 amd64 与 arm64 Nginx 及依赖库;
3. 交叉编译 amd64 与 arm64 Go 二进制;
4. 调用 `fnpack build` 打包。
## 真机注意
当前 Nginx 来自 Debian 12,依赖目标系统 glibc。飞牛设备建议满足:
```text
glibc >= 2.36
```
如果目标设备 glibc 版本较低,需要改为静态编译 Nginx 或打包完整
loader 与 libc。