From 893675e6a33845fa844c692e36ec1524c5b840e3 Mon Sep 17 00:00:00 2001 From: hoelee Date: Tue, 29 Sep 2026 01:10:39 +0800 Subject: [PATCH] Add post: Why Chrome Forgets Its Tabs in a Container (EN + ZH) - docker/Chrome/CDP gotcha: the container kills the browser, so it never exits cleanly and no restore mechanism fires (flag, Preferences, managed policy all verified failing) -> 60s snapshot + replay keeper - also covers the stale Singleton* lock and custom-cont-init.d permission traps - custom OG + banner art, EN + ZH, backlog B2 updated --- docs/project-state.md | 1 + ...chrome-forgets-its-tabs-in-a-container.png | Bin 0 -> 83643 bytes ...chrome-forgets-its-tabs-in-a-container.png | Bin 0 -> 49920 bytes scripts/banner-gen/generate.mjs | 19 ++ scripts/og-gen/generate.mjs | 6 + ...-chrome-forgets-its-tabs-in-a-container.md | 242 ++++++++++++++++++ ...-chrome-forgets-its-tabs-in-a-container.md | 242 ++++++++++++++++++ 7 files changed, 510 insertions(+) create mode 100644 public/banners/why-chrome-forgets-its-tabs-in-a-container.png create mode 100644 public/og/why-chrome-forgets-its-tabs-in-a-container.png create mode 100644 src/content/posts/why-chrome-forgets-its-tabs-in-a-container.md create mode 100644 src/content/posts/zh/why-chrome-forgets-its-tabs-in-a-container.md diff --git a/docs/project-state.md b/docs/project-state.md index 5bbddc9..25f98bc 100644 --- a/docs/project-state.md +++ b/docs/project-state.md @@ -74,6 +74,7 @@ nginx gateway, with the four build traps and the "5x faster than typing" busines **Step B2 — Write 2–3 short "gotcha" posts (Google-friendly, compound over time).** - [x] "Replacing RDPGuard With IPBan: The Traps Nobody Documents" (EN + ZH, `devops`, 2026-09-19) — the uninstaller that unbans 12 attackers, `--install-service` doesn't exist in v4.1.0, `ExpireTime` vs `BanTime`. Both images custom. - [x] "When Your Database Client Lies to You: Patching Workbench 26 for MariaDB" (EN + ZH, `devops`, 2026-09-19) — a client whose error handler crashed while reporting its own errors, masking every real failure; three patches to Oracle's bundled code, all stemming from `major >= 8` being an invalid MySQL-vs-MariaDB test. Both images custom. +- [x] "Why Chrome Forgets Its Tabs in a Container — And How I Fixed It" (EN + ZH, `devops`, 2026-09-26) — the container kills the browser, so it never sees a clean exit and *no* restore mechanism fires (flag, hand-edited `Preferences`, `RestoreOnStartup` policy all verified failing); the 60-second snapshot keeper that fixed it, plus the stale `Singleton*` and `custom-cont-init.d` permission traps. Both images custom. - [ ] "The Traefik forward-auth gotcha that cost me a day" - [ ] "Site-to-site OpenVPN behind CGNAT" - [ ] "Fixing the WordPress /cv 301→404 chain" (from own audit) diff --git a/public/banners/why-chrome-forgets-its-tabs-in-a-container.png b/public/banners/why-chrome-forgets-its-tabs-in-a-container.png new file mode 100644 index 0000000000000000000000000000000000000000..65953cb5874a663c75cc8008d05ee29869bad1f8 GIT binary patch literal 83643 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 E2PJ%F@&Et; literal 0 HcmV?d00001 diff --git a/scripts/banner-gen/generate.mjs b/scripts/banner-gen/generate.mjs index c997908..49554f9 100644 --- a/scripts/banner-gen/generate.mjs +++ b/scripts/banner-gen/generate.mjs @@ -768,6 +768,25 @@ BANNERS['nocodb-sso-is-a-licensed-feature'] = { ], }; +BANNERS['why-chrome-forgets-its-tabs-in-a-container'] = { + titlebar: 'root@dsm — chrome · CDP 9222 · session restore', + lines: [ + { t: 'prompt', text: '$' }, { t: 'cmd', text: 'docker restart chrome' }, + { t: 'err', text: '["chrome://newtab/"] ← every tab gone' }, + { t: 'dim', text: 'restore_on_startup=1 · RestoreOnStartup policy ✓ both set' }, + { t: 'err', text: 'exit_type=Crashed ← the browser never exits cleanly' }, + { t: 'prompt', text: '$' }, { t: 'cmd', text: 'tabs_keeper.py · snapshot 60s · replay /json/new' }, + { t: 'ok', text: '→ restored 2/2 tabs ✓' }, + ], + flow: [ + { n: '1', label: 'blank tab' }, + { n: '2', label: 'flag ✗' }, + { n: '3', label: 'preference ✗' }, + { n: '4', label: 'policy ✗' }, + { n: '5', label: 'keeper ✓' }, + ], +}; + // ---------- read frontmatter ---------- const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`); let category = 'devops'; diff --git a/scripts/og-gen/generate.mjs b/scripts/og-gen/generate.mjs index 99c3dfa..912dac2 100644 --- a/scripts/og-gen/generate.mjs +++ b/scripts/og-gen/generate.mjs @@ -237,6 +237,12 @@ TERMINALS['nocodb-sso-is-a-licensed-feature'] = `

     unhandledRejection · container exits(1)
    $CE mode · meta=MySQL · fork 0.255.2 (2024)→ gate at the edge ✓
    `; +TERMINALS['why-chrome-forgets-its-tabs-in-a-container'] = ` +
    $docker restart chrome · curl -s localhost:9232/json/list→ [ "chrome://newtab/" ]
    +
     restore_on_startup=1 · RestoreOnStartup policy · both set, both ignored
    +
     exit_type=Crashed ← the container kills the browser
    +
    $tabs_keeper.py · snapshot every 60s · replay via /json/new→ restored 2/2 tabs ✓
    `; + // ---------- read frontmatter ---------- const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`); if (!existsSync(postPath)) { diff --git a/src/content/posts/why-chrome-forgets-its-tabs-in-a-container.md b/src/content/posts/why-chrome-forgets-its-tabs-in-a-container.md new file mode 100644 index 0000000..861210a --- /dev/null +++ b/src/content/posts/why-chrome-forgets-its-tabs-in-a-container.md @@ -0,0 +1,242 @@ +--- +title: "Why Chrome Forgets Its Tabs in a Container — And How I Fixed It" +description: "Chrome's \"continue where you left off\" never fires inside a Docker container. The three fixes that failed, the real root cause, and the 70-line keeper that works." +pubDate: 2026-09-26 +category: devops +tags: [docker, chrome, cdp, persistence, synology, self-hosting] +ogImage: /og/why-chrome-forgets-its-tabs-in-a-container.png +banner: /banners/why-chrome-forgets-its-tabs-in-a-container.png +draft: false +--- + +I run a real Google Chrome inside a Docker container on my NAS. It is not a scraping instance and not a screenshot service — it is a browser I actually use: signed into the accounts a headless bot should never touch, watchable through a web desktop from any device, and drivable over the Chrome DevTools Protocol when I want to automate part of a job. + +It works well, with one exception. **Every time the container restarts, the browser comes back with a single blank tab.** + +Chrome has a setting for exactly this — "Continue where you left off". It was already enabled. It did nothing. What follows is three fixes that failed, the actual root cause, the two landmines I hit on the way, and the ~70-line keeper that finally made restarts survivable. + +## Why this matters + +When a container browser is your workspace, the tabs *are* the state. Half-finished forms, a marketplace listing in progress, a dashboard filtered to the right date range, three tabs open on a customer's infrastructure — that is the work. A browser that opens on `about:blank` means the first ten minutes after every restart are spent rebuilding context you already had. + +I looked for this answer more than once and found nothing but "set `restore_on_startup`" advice that does not survive contact with a container. If you have hit the same wall, this is the wall explained. + +## The setup + +A single Docker stack on a Synology NAS, two browsers in it (real Chrome and Brave), each behind my own SSO gate: + +| Piece | Value | +|---|---| +| Image | `lscr.io/linuxserver/chrome` — real Google Chrome 154 | +| Desktop | Selkies web desktop, container `3000`/`3001` → host `3030`/`3031` | +| Automation | CDP published at `http://:9232/json/version` | +| Profile | a bind mount, `/config/profile` inside the container | +| Launch flags | `--remote-debugging-port=9222 --user-data-dir=/config/profile --restore-last-session` | + +The profile is a bind mount, so the logins, cookies and history genuinely do persist across a container rebuild — that part was never broken. Only the *session* (which tabs were open) was lost. + +## Attempt 1: the flag + +Chromium ships a switch that sounds like the answer: `--restore-last-session`. It is documented as "restore the last session *after an unexpected exit*". + +I added it via the image's CLI env var and confirmed it was actually applied to the running process, because these images build the command line from a wrapper script: + +```bash +docker exec chrome sh -c 'tr "\0" " " < /proc/$(pgrep -f "google-chrome --" | head -1)/cmdline' | tr ' ' '\n' | grep -E 'restore|user-data-dir|remote-debug' +# --remote-debugging-port=9222 +# --user-data-dir=/config/profile +# --restore-last-session +``` + +Restart. Blank tab. The flag was there; it just had nothing it was willing to restore. + +## Attempt 2: edit the profile's preferences + +Chrome stores "Continue where you left off" in the profile's `Preferences` JSON as `session.restore_on_startup: 1`. So I stopped the container and edited it directly, along with the `exit_type` marker: + +```python +import json +p = '/config/profile/Default/Preferences' +d = json.load(open(p)) +d.setdefault('session', {})['restore_on_startup'] = 1 # 1 = restore last session +d.setdefault('profile', {})['exit_type'] = 'Normal' +json.dump(d, open(p, 'w')) +``` + +This is the classic advice you will find online, and it half-worked: after the next boot, Chrome had **kept** `restore_on_startup: 1` in the file — and still opened a blank tab. What it did not keep was my `exit_type`: it had already rewritten that to `Crashed` at startup. + +That rewrite turned out to be the first real clue. Chrome treats startup state as a security boundary — the settings a hijacker would most like to change (homepage, search provider, startup pages) are MAC-checked against a separate `Secure Preferences` file. A value edited on disk does not automatically become a value Chrome obeys. + +## Attempt 3: a managed policy + +The supported way to force browser behaviour is a **managed policy**, which is authoritative and not subject to that MAC check. On Linux, Chrome reads `/etc/opt/chrome/policies/managed/*.json`: + +```json +{ "RestoreOnStartup": 1 } +``` + +Two details before you bother: Chrome ignores a policy file that is writable by the user running the browser, so it needs `root:root` and mode `644` — and on a Synology share, `chmod` refuses to run even under `sudo` for some directories, so verify the mode you already have instead of assuming you changed it. + +Mounted into the container, verified present after boot: + +```bash +docker exec chrome sh -c 'ls -l /etc/opt/chrome/policies/managed/; cat /etc/opt/chrome/policies/managed/hoeleepolicy.json' +# -rw-r--r-- 1 root root 28 hoeleepolicy.json +# { "RestoreOnStartup": 1 } +``` + +Restart. Blank tab. Still. + +## Attempt 4: prove the exit is ungraceful + +At this point the question stopped being "which setting do I need" and became "what does this browser actually see when the container stops". + +Chrome's restore machinery needs a session it considers *interrupted or resumable*. It rolls `Current Session` into `Last Session` on a clean exit. I asked the CDP endpoint to close the browser gracefully instead of pulling the container out from under it: + +```python +# browser-level target from /json/version +ws.send(json.dumps({"id": 1, "method": "Browser.close", "params": {}})) +``` + +Chrome exited — and the desktop session relaunched it within seconds. `exit_type` was back to `Crashed` immediately. + +That is the whole trick, and it explains all three failures: **the browser never exits cleanly.** When you stop the container, the desktop session is torn down and the browser is killed with it. No clean exit means no `Last Session` rollover, which means there is nothing for "continue where you left off" — or a `RestoreOnStartup` policy — to restore. The flag, the preference and the policy were all working correctly and all had nothing to work with. + +The data was never missing. The profile's session directory was being written continuously, seconds apart, the whole time: + +``` +-rw------- 1 hoelee users 40722 Session_13434833255312492 +-rw------- 1 hoelee users 58879 Tabs_13434833757632480 +-rw------- 1 hoelee users 79361 Tabs_13434833833646133 +``` + +## The fix: stop configuring, start keeping + +If the browser cannot be trusted to remember its own session, the container can remember it instead. Two jobs, both tiny: + +1. **On start**: wait for the browser, and if it came up with no real page open, re-open the URLs it had last time. +2. **Forever after**: every 60 seconds, snapshot the open page URLs. + +That is a background script launched from the image's container-init hook. The version I run, trimmed to the useful parts: + +```python +#!/usr/bin/env python3 +"""Restore last session's tabs on start, then snapshot open tabs every 60s.""" +import json, os, time, urllib.parse, urllib.request + +CDP = "http://127.0.0.1:9222" # loopback inside the container +STORE = "/config/tabs-last.txt" # lives in the persistent profile mount + +def open_tabs(): + """http(s) page URLs, or None when the browser isn't answering yet.""" + try: + with urllib.request.urlopen(CDP + "/json/list", timeout=5) as r: + tabs = json.load(r) + except Exception: + return None + return [t.get("url", "") for t in tabs + if t.get("type") == "page" and t.get("url", "").startswith("http")] + +saved = [u.strip() for u in open(STORE)] if os.path.exists(STORE) else [] + +# 1) restore — wait up to 3 minutes for the browser to come up +if saved: + for _ in range(60): + if open_tabs() is not None: + break + time.sleep(3) + if open_tabs() == []: # nothing but a blank new tab + for url in saved[:20]: + req = urllib.request.Request( + CDP + "/json/new?" + urllib.parse.quote(url, safe=""), method="PUT") + urllib.request.urlopen(req, timeout=10).read() + time.sleep(0.7) + +# 2) snapshot — write even an empty list, so "I closed everything" is respected +while True: + time.sleep(60) + tabs = open_tabs() + if tabs is None: + continue + tmp = STORE + ".tmp" + open(tmp, "w").write("\n".join(tabs) + ("\n" if tabs else "")) + os.replace(tmp, STORE) # atomic; a kill can't truncate it +``` + +Two design choices worth copying: + +- **Restore only when the browser came up empty.** If a future Chrome version *does* restore its own tabs, the keeper stays out of the way instead of duplicating every tab. +- **The snapshot is atomic and may be empty.** Writing through a temp file plus `os.replace` means a container killed mid-write cannot leave a truncated list, and an empty snapshot is meaningful data: it means you closed everything on purpose, so the next start should stay empty. + +The container-init hook that runs it: + +```sh +#!/bin/sh +# clear stale singleton state (see below) +rm -f /config/profile/Singleton* 2>/dev/null +# long-running, so background it or you block container init +/usr/bin/env python3 /custom-cont-init.d/tabs_keeper.py >> /config/tabs-keeper.log 2>&1 & +exit 0 +``` + +### Landmine 1: a stale `Singleton*` stops Chrome from starting at all + +While testing restarts I hit a worse failure than a blank tab: the container came up **healthy with no browser in it**. No `google-chrome` process, CDP dead, the relay's healthcheck reporting `unhealthy`, nothing in the logs beyond the desktop starting. + +The cause is the profile's `SingletonLock`/`SingletonSocket`/`SingletonCookie` symlinks. They encode "this profile is owned by PID *n* on host *h*" — and inside a container, PIDs are reused across restarts, so the next boot can find its own PID already claiming the profile and exit immediately. Deleting them at container start, before the browser launches, is the fix. It is also why that `rm -f` sits in the hook above. + +### Landmine 2: `custom-cont-init.d` only runs *executable* files — and runs them with bash + +The LinuxServer images execute every file in `/custom-cont-init.d`, but only if it is executable, and each one through `/bin/bash`. Which means a Python file you drop in there must **not** be executable, or it gets fed to bash and exits 2: + +``` +[custom-init] tabs_keeper.py: executing... +[custom-init] tabs_keeper.py: exited 2 +``` + +The split that works: a `.sh` hook at `755` that backgrounds the long-running work, and the `.py` next to it at `644`. And anything that does not return immediately has to be backgrounded, or container init waits on it forever. + +## The plumbing trap that came with it + +The keeper talks to Chrome over CDP on loopback, which is why it needs no ports. If you also want to drive the browser from another machine, there is one more container in the picture, because Chrome ≥ 136 pins its devtools endpoint to `127.0.0.1:9222` and ignores `--remote-debugging-address`. The standard workaround is a `socat` sidecar sharing the browser's network namespace: + +```yaml +chrome-relay: + image: alpine/socat + network_mode: service:chrome # must share the browser's netns + command: socat TCP-LISTEN:9223,fork,reuseaddr TCP:127.0.0.1:9222 + healthcheck: + test: ["CMD-SHELL", "nc -z 127.0.0.1 9222 || exit 1"] +``` + +The port mapping does **not** go on the relay (it has no namespace of its own) — it goes on the browser service: `9232:9223`. + +That sidecar has one behaviour you have to internalise: **restart the browser and the relay dies with it.** The namespace it was living in is rebuilt underneath it, socat keeps running and its sockets stop working, so CDP answers with `connection reset` while the container still looks fine. Fix the symptoms in this order: + +```bash +docker restart chrome && docker restart chrome-relay # order matters +``` + +The healthcheck above is what turns a silent failure into a visible `unhealthy` flag. If you want to drive a container browser yourself, I wrote the client side up separately in [Scraping a Bot-Walled Marketplace With a Warm Browser Session](/posts/scraping-bot-walled-marketplace-warm-browser-session/). + +## What I'd do differently + +- **Determine whether the process can exit cleanly before trusting any "restore on startup" mechanism.** I spent three attempts configuring a feature whose precondition — an exit the browser notices — was never met. One `Browser.close` test would have collapsed the whole search. +- **Don't hand-edit browser preferences.** They are MAC-checked against `Secure Preferences`; a plausible-looking value on disk is not a value Chrome obeys. If you need a switch to be authoritative, use a managed policy — and verify the policy is loaded instead of assuming the file is enough. +- **Check who is allowed to write the policy.** A root-owned `644` file in `/etc/opt/chrome/policies/managed` is the shape; a user-writable one is ignored silently. +- **Treat "the browser is running" and "the container is running" as different questions.** The stale-singleton failure looked like a healthy container from the outside. +- **Snapshot state instead of asking software to remember it.** Anything with a hard kill in its shutdown path — containers, kiosks, desktop sessions — is a poor place to rely on clean-exit bookkeeping. A 60-second atomic snapshot is boring, and it works. + +## The result + +- Tabs restored **2/2 on both browsers** across a real container restart (`restored 2/2 tabs` in the keeper log), verified over CDP afterwards +- Logins, cookies and `localStorage` confirmed surviving the same restarts — the persistent profile was never the problem +- Three stacks (two browsers plus a throwaway experiment) collapsed into one, with the relay's healthcheck making the one restart-order trap visible instead of silent + +## Want this for your business? + +If you want a browser that stays logged in — running on your own hardware, reachable from anywhere, behind SSO, with tab state that survives restarts and a CDP endpoint your scripts can drive — that is the setup I run and maintain. + +**WhatsApp: [+60 12-797 2969](https://wa.me/60127972969)** · **Email: [me@hoelee.com](mailto:me@hoelee.com?subject=Self-hosted%20container%20browser)** · **[hoelee.com](https://hoelee.com)** + +Website design and development is my main line of work; self-hosted infrastructure and automation is the other half of it. diff --git a/src/content/posts/zh/why-chrome-forgets-its-tabs-in-a-container.md b/src/content/posts/zh/why-chrome-forgets-its-tabs-in-a-container.md new file mode 100644 index 0000000..098a682 --- /dev/null +++ b/src/content/posts/zh/why-chrome-forgets-its-tabs-in-a-container.md @@ -0,0 +1,242 @@ +--- +title: "为什么容器里的 Chrome 会忘记标签页 —— 以及我是怎么修好的" +description: "Chrome 的「继续上次浏览」在 Docker 容器里根本不会生效:三次失败的尝试、真正的原因,以及最后管用的 70 行守护脚本。" +pubDate: 2026-09-26 +category: devops +tags: [docker, chrome, cdp, persistence, synology, self-hosting] +ogImage: /og/why-chrome-forgets-its-tabs-in-a-container.png +banner: /banners/why-chrome-forgets-its-tabs-in-a-container.png +draft: false +--- + +我在 NAS 上的 Docker 容器里跑着一个真正的 Google Chrome。它不是爬虫实例,也不是截图服务 —— 是我真的在用的浏览器:登录着那些绝不该交给无头机器人的账号,可以从任何设备通过网页桌面看着它操作,需要自动化的时候还能用 Chrome DevTools Protocol (CDP) 驱动它。 + +它一直很好用,只有一个例外:**每次容器重启,浏览器回来时只剩一个空白标签页。** + +Chrome 明明有专门对付这件事的设置 ——「继续浏览上次打开的网页」。它一直是开着的,却毫无作用。下面就是三次失败的尝试、真正的原因、路上踩到的两颗地雷,以及最后真正让重启变得可用的那七十来行守护脚本。 + +## 为什么这件事值得认真对待 + +当容器里的浏览器就是你的工作台时,标签页就是状态本身:填了一半的表单、正在编辑的商品上架页、筛选到指定日期的仪表盘、客户基础设施的三个页面 —— 那些就是工作。浏览器一启动停在空白页,意味着每次重启后的头十分钟都在重建你本来就有的上下文。 + +这个问题我查过不止一次,网上能搜到的只有「把 `restore_on_startup` 设上」这类建议,而那套建议一进容器就失效。如果你也撞上了同一堵墙,这篇文章就是这堵墙的解释。 + +## 我的环境 + +Synology NAS 上的一个 Docker stack,里面两个浏览器(真 Chrome 加 Brave),各自挂在自己的 SSO 网关后面: + +| 组件 | 取值 | +|---|---| +| 镜像 | `lscr.io/linuxserver/chrome` —— 真正的 Google Chrome 154 | +| 桌面 | Selkies 网页桌面,容器 `3000`/`3001` → 宿主 `3030`/`3031` | +| 自动化 | CDP 暴露在 `http://:9232/json/version` | +| Profile | bind mount,容器内路径 `/config/profile` | +| 启动参数 | `--remote-debugging-port=9222 --user-data-dir=/config/profile --restore-last-session` | + +Profile 是 bind mount,所以登录态、cookie、历史记录在容器重建后确实都还在 —— 那部分从来没坏过。丢掉的只有**会话**(当时开着哪些标签页)。 + +## 尝试一:那个启动参数 + +Chromium 有一个听起来正合适的开关:`--restore-last-session`,文档说法是「在**意外退出**后恢复上次的会话」。 + +我通过镜像的 CLI 环境变量加上它,并且确认它确实传到了运行中的进程上 —— 因为这类镜像的命令行是包装脚本拼出来的: + +```bash +docker exec chrome sh -c 'tr "\0" " " < /proc/$(pgrep -f "google-chrome --" | head -1)/cmdline' | tr ' ' '\n' | grep -E 'restore|user-data-dir|remote-debug' +# --remote-debugging-port=9222 +# --user-data-dir=/config/profile +# --restore-last-session +``` + +重启。空白页。参数在,只是它没有任何「愿意恢复」的东西。 + +## 尝试二:直接改 profile 里的配置 + +Chrome 把「继续浏览上次打开的网页」存在 profile 的 `Preferences` JSON 里,字段是 `session.restore_on_startup: 1`。于是我停掉容器,直接把这两个值改了: + +```python +import json +p = '/config/profile/Default/Preferences' +d = json.load(open(p)) +d.setdefault('session', {})['restore_on_startup'] = 1 # 1 = restore last session +d.setdefault('profile', {})['exit_type'] = 'Normal' +json.dump(d, open(p, 'w')) +``` + +这就是网上最流行的那套做法,而它「半成功」了:下次启动后,Chrome **保留**了文件里的 `restore_on_startup: 1` —— 然后照样打开空白页。它没有保留的是我写的 `exit_type`:启动时它已经把那个值改回了 `Crashed`。 + +这次改写反而是第一条真正的线索。Chrome 把启动状态当成安全边界 —— 劫持者最想改的那些设置(主页、搜索引擎、启动页面)会跟另一个文件 `Secure Preferences` 做 MAC 校验。所以,磁盘上被改过的值,并不自动等于 Chrome 会遵守的值。 + +## 尝试三:托管策略 + +让浏览器行为具备权威性的正式办法是**托管策略**(managed policy),它不受上面那套 MAC 校验约束。在 Linux 上,Chrome 读取 `/etc/opt/chrome/policies/managed/*.json`: + +```json +{ "RestoreOnStartup": 1 } +``` + +动手之前有两个细节:Chrome **会忽略**运行浏览器的那个用户可写的策略文件,所以必须是 `root:root` 加 `644`;而在 Synology 的共享目录上,某些目录即使 `sudo` 也会拒绝执行 `chmod`,所以别假设你改成功了,去确认当前的实际权限。 + +挂进容器,启动后确认文件在位: + +```bash +docker exec chrome sh -c 'ls -l /etc/opt/chrome/policies/managed/; cat /etc/opt/chrome/policies/managed/hoeleepolicy.json' +# -rw-r--r-- 1 root root 28 hoeleepolicy.json +# { "RestoreOnStartup": 1 } +``` + +重启。还是空白页。 + +## 尝试四:先证明「退出是不干净的」 + +到这一步,问题已经不是「我该用哪个设置」,而是「容器停掉的时候,这个浏览器到底看到了什么」。 + +Chrome 的会话恢复机制需要一个它认为**被中断、或可续接**的会话:只有在正常退出时,它才会把 `Current Session` 落成 `Last Session`。于是我改用最温和的方式收掉浏览器 —— 通过 CDP 让它自己优雅退出,而不是把容器从它脚下抽走: + +```python +# browser-level target from /json/version +ws.send(json.dumps({"id": 1, "method": "Browser.close", "params": {}})) +``` + +Chrome 确实退出了 —— 然后桌面会话在几秒内又把它拉了起来,`exit_type` 立刻回到 `Crashed`。 + +这就是全部的机关,它一次性解释了前面三次失败:**这个浏览器从来没有干净退出过。** 你停容器时,桌面会话被一起拆掉,浏览器跟着被杀。没有干净退出,就没有 `Last Session` 的落盘,也就没有任何东西可供「继续上次浏览」或 `RestoreOnStartup` 策略去恢复。那个参数、那个首选项、那条策略其实都在正常工作 —— 只是它们手上空无一物。 + +数据其实一直都在。那段时间 profile 的会话目录每隔几秒就在写: + +``` +-rw------- 1 hoelee users 40722 Session_13434833255312492 +-rw------- 1 hoelee users 58879 Tabs_13434833757632480 +-rw------- 1 hoelee users 79361 Tabs_13434833833646133 +``` + +## 修法:别再去配置它,开始替它记住 + +如果浏览器记不住自己的会话,那就让容器替它记住。两件事,都很小: + +1. **启动时**:等浏览器起来,如果它一个真正的页面都没打开,就把上次的网址重新打开。 +2. **之后一直**:每 60 秒把当前打开的页面地址快照一次。 + +这就是一段从镜像的容器初始化钩子拉起的后台脚本。我实际在跑的版本,去掉无关部分后是这样: + +```python +#!/usr/bin/env python3 +"""Restore last session's tabs on start, then snapshot open tabs every 60s.""" +import json, os, time, urllib.parse, urllib.request + +CDP = "http://127.0.0.1:9222" # loopback inside the container +STORE = "/config/tabs-last.txt" # lives in the persistent profile mount + +def open_tabs(): + """http(s) page URLs, or None when the browser isn't answering yet.""" + try: + with urllib.request.urlopen(CDP + "/json/list", timeout=5) as r: + tabs = json.load(r) + except Exception: + return None + return [t.get("url", "") for t in tabs + if t.get("type") == "page" and t.get("url", "").startswith("http")] + +saved = [u.strip() for u in open(STORE)] if os.path.exists(STORE) else [] + +# 1) restore — wait up to 3 minutes for the browser to come up +if saved: + for _ in range(60): + if open_tabs() is not None: + break + time.sleep(3) + if open_tabs() == []: # nothing but a blank new tab + for url in saved[:20]: + req = urllib.request.Request( + CDP + "/json/new?" + urllib.parse.quote(url, safe=""), method="PUT") + urllib.request.urlopen(req, timeout=10).read() + time.sleep(0.7) + +# 2) snapshot — write even an empty list, so "I closed everything" is respected +while True: + time.sleep(60) + tabs = open_tabs() + if tabs is None: + continue + tmp = STORE + ".tmp" + open(tmp, "w").write("\n".join(tabs) + ("\n" if tabs else "")) + os.replace(tmp, STORE) # atomic; a kill can't truncate it +``` + +两个设计选择值得抄走: + +- **只在浏览器确实空空如也时才恢复。** 万一将来某个 Chrome 版本自己会恢复标签页,这段脚本就会让路,而不是把每个标签页再复制一遍。 +- **快照是原子的,而且允许为空。** 先写临时文件再 `os.replace`,意味着写到一半被杀也不会留下半截列表;而空列表是有意义的数据 —— 它表示你主动关掉了全部标签页,所以下次启动就该保持空白。 + +拉起它的初始化钩子: + +```sh +#!/bin/sh +# clear stale singleton state (see below) +rm -f /config/profile/Singleton* 2>/dev/null +# long-running, so background it or you block container init +/usr/bin/env python3 /custom-cont-init.d/tabs_keeper.py >> /config/tabs-keeper.log 2>&1 & +exit 0 +``` + +### 地雷一:残留的 `Singleton*` 会让 Chrome 干脆不启动 + +测试重启的过程中,我撞上了一个比空白页更糟的故障:容器**健康地**起来了,里面却没有浏览器。没有 `google-chrome` 进程、CDP 不通、中继容器的健康检查报 `unhealthy`,日志里除了桌面启动之外什么都没有。 + +原因在 profile 里的 `SingletonLock`/`SingletonSocket`/`SingletonCookie` 这几个符号链接 —— 它们记录了「这个 profile 属于主机 *h* 上的进程 *n*」。而容器里的 PID 会跨重启复用,于是下一次启动可能发现自己这个 PID 已经被「占用」,于是立刻退出。在容器启动时、浏览器拉起之前把它们删掉就是解法,这也是上面钩子里那句 `rm -f` 存在的原因。 + +### 地雷二:`custom-cont-init.d` 只执行**可执行**文件,而且用 bash 执行 + +LinuxServer 的镜像会执行 `/custom-cont-init.d` 下的每个文件,但前提是它可执行,并且是用 `/bin/bash` 执行。也就是说,你放进去的 Python 文件**绝不能**带执行位,否则会被喂给 bash 然后以 2 退出: + +``` +[custom-init] tabs_keeper.py: executing... +[custom-init] tabs_keeper.py: exited 2 +``` + +可行的分工是:`.sh` 钩子设 `755`,把常驻任务放到后台;同目录的 `.py` 设 `644`。另外,任何不会立刻返回的东西都必须后台化,否则容器初始化会一直等它。 + +## 顺带带出来的管道陷阱 + +守护脚本是走 loopback 上的 CDP 跟 Chrome 说话的,所以它不需要任何端口。但如果你还想从另一台机器驱动这个浏览器,就会多出一个容器 —— 因为 Chrome ≥ 136 把 devtools 端点钉在 `127.0.0.1:9222`,并且忽略 `--remote-debugging-address`。标准做法是让一个 `socat` 边车共用浏览器的网络命名空间: + +```yaml +chrome-relay: + image: alpine/socat + network_mode: service:chrome # must share the browser's netns + command: socat TCP-LISTEN:9223,fork,reuseaddr TCP:127.0.0.1:9222 + healthcheck: + test: ["CMD-SHELL", "nc -z 127.0.0.1 9222 || exit 1"] +``` + +端口映射**不**写在中继上(它自己没有独立命名空间),而是写在浏览器服务上:`9232:9223`。 + +这个边车有一个你必须记住的行为:**重启浏览器,中继会跟着死。** 它当初所在的命名空间被重建了,socat 进程还活着、套接字却已经失效,于是 CDP 报 `connection reset`,而容器看起来一切正常。按这个顺序收拾: + +```bash +docker restart chrome && docker restart chrome-relay # order matters +``` + +上面那条健康检查的作用,就是把这种静默故障变成一个看得见的 `unhealthy`。如果你打算自己驱动容器里的浏览器,客户端那一侧我单独写过一篇:[Scraping a Bot-Walled Marketplace With a Warm Browser Session](/posts/scraping-bot-walled-marketplace-warm-browser-session/)。 + +## 如果重来一次 + +- **先确认进程能不能干净退出,再考虑相信任何「启动时恢复」的机制。** 我在一个前提条件(浏览器能察觉到的退出)根本不存在的情况下,连试了三种配置。一次 `Browser.close` 测试就能让整个排查过程坍缩。 +- **不要手改浏览器首选项。** 它们会跟 `Secure Preferences` 做 MAC 校验;磁盘上一个看起来合理的值,并不等于 Chrome 会遵守的值。需要权威性就用托管策略 —— 并且去验证策略真的加载了,而不是假设文件放进去就够了。 +- **确认谁有权限写那条策略。** `root:root`、`644`,放在 `/etc/opt/chrome/policies/managed` 下才是对的形状;用户可写的策略文件会被静默忽略。 +- **把「浏览器在跑」和「容器在跑」当成两个不同的问题。** 残留 singleton 那次故障,从外面看就是一个健康的容器。 +- **与其让软件记住状态,不如自己存快照。** 任何关闭路径上带强杀的软件 —— 容器、kiosk、桌面会话 —— 都不是依赖「干净退出」记账的好地方。一个 60 秒一次、原子写入的快照很无聊,但它管用。 + +## 结果 + +- 真实的容器重启之后,两个浏览器各自 **2/2 个标签页**都恢复了(守护日志里是 `restored 2/2 tabs`),重启后再用 CDP 复核过 +- 同一批重启里,登录态、cookie 和 `localStorage` 都确认存活 —— 持久化 profile 从来不是问题所在 +- 三个 stack(两个浏览器加一个试验品)合并成一个,并且靠中继的健康检查,把唯一那个「重启顺序」陷阱由静默变成看得见 + +## 你的业务需要这个吗? + +如果你想要一个始终登录着的浏览器 —— 跑在你自己的硬件上、任何地方都能访问、挂在 SSO 后面、标签页状态能扛住重启,还带一个能给你脚本用的 CDP 端点 —— 那正是我在跑、也在维护的这套东西。 + +**WhatsApp: [+60 12-797 2969](https://wa.me/60127972969)** · **Email: [me@hoelee.com](mailto:me@hoelee.com?subject=Self-hosted%20container%20browser)** · **[hoelee.com](https://hoelee.com)** + +网站设计与开发是我的主业;自托管基础设施与自动化是另外一半。