Files
datie-bom/debug-docker-chromium-404.md
2026-06-12 17:47:07 +08:00

30 lines
1.5 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.
# [OPEN] docker-chromium-404
## 症状
- Docker 生产环境中,发料单明细增量同步启动浏览器后报错:`Handshake status 404 Not Found`
## 当前现象
- 已确认不是多 worker 竞争导致的旧症状。
- 已确认 `DrissionPage` 在 Docker 中进入了自动端口模式。
- 当前需要采集 Chromium 实际调试地址、`/json/version` 返回内容、以及握手前的连接目标。
## 初始假设
- 假设 1Chromium 虽然启动了,但 DevTools HTTP 接口没有真正暴露在 `127.0.0.1:<port>`
- 假设 2Chromium 暴露的并不是标准 DevTools Browser WebSocket 地址DrissionPage 连到了错误的 ws 路径。
- 假设 3容器内存在反向代理/网关拦截,导致本地调试端口请求拿到 HTML 404 页面。
- 假设 4当前 Chromium 启动参数与 Debian slim 镜像内核能力不兼容,浏览器进程启动不完整但未直接抛出更明确异常。
- 假设 5DrissionPage 在当前版本下对 Docker 中的 `headless=new` 或自动端口流程存在兼容性问题。
## 计划
- 第一步:只加调试插桩,不改业务逻辑。
- 第二步:让用户在 Docker 中复现,回收调试日志。
- 第三步:根据证据确认根因后,再做最小修复。
## 已完成
- 已在 `browser_login/login.py``get_page()` 增加调试插桩。
- 插桩会输出:
- DrissionPage 最终计算的 `address`
- Chromium 实际 `browser_path`
- 启动参数列表
- 握手失败后对 `http://<address>/json/version``http://<address>/json/list` 的探测结果