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

1.5 KiB
Raw Blame History

[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.pyget_page() 增加调试插桩。
  • 插桩会输出:
    • DrissionPage 最终计算的 address
    • Chromium 实际 browser_path
    • 启动参数列表
    • 握手失败后对 http://<address>/json/versionhttp://<address>/json/list 的探测结果