Files
UHD_Media_Tool/docker/camofox/README.md
T

37 lines
3.8 KiB
Markdown
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.
# 浏览器独立构建
服务源码固定为 camofox-browser v1.18.0 的提交 `f94c81babf4bfd44cdd4bd46e1f2e1fb1d91c753`。标签对象 `60481dbd…` 不是源码提交。`build.sh` 核对 checkout 的提交与工作区后构建;Dockerfile 使用该源码命名上下文,并使用本目录的生产 manifest 和 lock。
```sh
APT_MIRROR=mirrors.ustc.edu.cn sh docker/camofox/build.sh
docker build --network=host --build-arg APT_MIRROR=mirrors.ustc.edu.cn \
-t umt-browser-desktop:1.18.0 docker/browser-desktop
```
桌面底座含 Docker HTTPS apt 源;需要时可另传 `--build-arg APT_HTTPS_PROXY=http://127.0.0.1:7890` 使用现有代理。该参数只作用于构建中的 apt HTTPS 请求,默认直连,不写入容器 apt 配置;Debian HTTP 镜像仍直连。
固定组合:Node 24.21.0(基础镜像固定摘要)、Camoufox 152.0.4-beta.30(amd64/arm64 官方资产 SHA-256)、camoufox-js 0.13.0、playwright-core 1.62.1、better-sqlite3 13.0.3、MCP SDK 1.32.1。桌面底座继续使用已核验的 Selkies 摘要;Cookie 插件、身份、代理、运行用户、umask 和 exec 信号转发保留。
下载较慢时,可先把对应架构的官方资产存成某目录中的 `camoufox.zip`,设置 `CAMOUFOX_ASSET_DIR=/path/to/asset` 再运行 `build.sh`。可选命名上下文直接提供 ZIP,但仍通过完全相同的 SHA-256 校验、解压与二进制存在检查;默认仍在构建时从官方 URL 下载。
camoufox-js 0.13.0 的 peer 要求 playwright-core `<1.63.0`,因此固定到 1.62.1。Camoufox 152.0.4-beta.30 已加入 Playwright 1.61 协议支持,0.13.0 也固定使用该浏览器版本。
本地 manifest 从上游生产入口派生,去掉开发测试、OpenClaw 可选 peer 和发布脚本;保留服务、postinstall 和生产可选 MCP。安全 overrides 固定 `adm-zip` 0.6.1、`brace-expansion` 5.0.12、`fast-uri` 3.1.9、`hono` 4.13.13、`ip-address` 10.7.2;fast-uri 保留 AJV 所需的 3.x API。其它生产依赖由独立 lock 固定。这里是显式依赖补丁,没有在构建时运行 `npm audit fix`。
MCP 和内置插件从服务根目录的同一依赖树解析模块。镜像中的 MCP manifest 同步为 SDK 1.32.1,不复制上游未安装的独立旧 lock。2026-10-22 对当前 lock 运行 `npm audit` 得到 0 条漏洞;`audit-2026-10-01.json` 是旧锁文件的历史记录。两个镜像均在安装依赖前更新容器系统包,宿主机软件不变。
需要更新依赖时,先编辑明确版本,再用固定 Node 镜像生成 lock 并审计,审查 lock 差异后构建:
```sh
docker run --rm --network=host -v "$PWD/docker/camofox:/work" -w /work \
node:24.21.0-trixie-slim@sha256:8ec5d7557396cfe32d21c3f9c13072355ceab22b584578ca4bb28af31120cffe \
npm install --package-lock-only --ignore-scripts --omit=dev
docker run --rm --network=host -v "$PWD/docker/camofox:/work:ro" -w /work \
node:24.21.0-trixie-slim@sha256:8ec5d7557396cfe32d21c3f9c13072355ceab22b584578ca4bb28af31120cffe \
npm audit --package-lock-only --omit=dev --json
```
隔离验收使用独立容器、端口和 profile 卷,不挂生产 `umt-camofox`。`verify-upgrade.mjs` 接受测试地址和访问 key,支持重启前后两次运行以核验 Cookie 落盘和固定身份。此验收覆盖本地行为;真实 PT 挑战、远程桌面客户端兼容和 ARM64 执行仍需各自验收。
2026-11-05 已在本机独立桌面容器验收上述固定组合:重启前 12 项、正常重启后 13 项通过,覆盖鉴权、固定身份、Cookie、页面创建、evaluate、快照、PNG、选择器点击、可信坐标点击与 profile 隔离。重启后实例 ID 改变,固定身份保持,Cookie 从持久化状态恢复。测试容器与专用卷已清理,未更改现有部署;日志保存在 `.local/review-20261105/browser-*.log`。