53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
# fingerprint-chromium Docker
|
||
|
||
将 [adryfish/fingerprint-chromium](https://github.com/adryfish/fingerprint-chromium) 最新 Linux x86_64 安装包封装为 Docker 镜像。
|
||
|
||
容器始终通过 Xvfb 启动普通的有头 Chromium,不默认使用 `--headless`。上游仅处理了部分无头特征,因此不要把无头模式设为默认。
|
||
|
||
## 构建
|
||
|
||
需要 Docker、curl 和 jq:
|
||
|
||
```bash
|
||
./scripts/build.sh
|
||
```
|
||
|
||
指定上游 Chrome 版本或镜像名:
|
||
|
||
```bash
|
||
CHROME_VERSION=148.0.7778.215 ./scripts/build.sh my-registry/fingerprint-chromium
|
||
```
|
||
|
||
脚本从上游 GitHub Release 解析唯一的 Linux x86_64 压缩包,镜像 tag 使用完整 Chrome 版本。设置 `PUSH=true` 时,若仓库中不存在该版本标签则构建并推送,否则跳过。
|
||
|
||
## 运行
|
||
|
||
```bash
|
||
docker run --rm \
|
||
-p 127.0.0.1:9222:9222 \
|
||
-v fingerprint-profile:/data \
|
||
fingerprint-chromium:148.0.7778.215 \
|
||
--fingerprint=1000 \
|
||
about:blank
|
||
```
|
||
|
||
CDP 端口默认是 `9222`;不要直接暴露到公网。每个账号应使用独立的数据卷与 fingerprint seed。可通过 `SCREEN_SIZE` 调整虚拟显示器,例如 `1600x900x24`。
|
||
|
||
上游 Linux 包未携带 SUID sandbox,且普通 Docker runner 默认不允许 Chromium 使用 user namespace sandbox,因此入口使用 `--no-sandbox` 并以非 root 用户运行。镜像依赖容器边界隔离浏览器;访问不可信内容时应额外限制网络、文件挂载和容器权限。
|
||
|
||
## 自动发布
|
||
|
||
- Gitea Workflow:推送 `git.ipao.vip/rogee/fingerprint-chromium:<chrome-version>`,使用仓库 secret `REGISTRY_TOKEN`。
|
||
- GitHub Workflow:推送 `ghcr.io/rogeecn/fingerprint-chromium:<chrome-version>`,使用内置 `GITHUB_TOKEN`。
|
||
|
||
两个 Workflow 都会在 PR 中只构建验证,在 `main` 更新、每日定时任务或手动触发时构建并推送。仓库需要允许 Actions job token 写入 Packages。
|
||
|
||
## 验证
|
||
|
||
```bash
|
||
./tests/check.sh
|
||
docker run --rm fingerprint-chromium:148.0.7778.215 --version
|
||
```
|
||
|
||
本仓库只支持上游当前提供的 `linux/amd64` 安装包。
|