執行環境
go-browser 從主機讀取的環境變數、Chrome 執行檔位置與設定檔路徑。
環境變數
| 變數 | 影響 |
|---|---|
DISPLAY |
Linux 上非空即視為具備 GUI,啟用有頭重試與 session 網域的有頭模式 |
WAYLAND_DISPLAY |
同上 |
macOS 無條件視為具備 GUI。兩者皆未設定的 Linux 主機只會使用 headless,不會因為嘗試啟動有頭瀏覽器而失敗。不讀取其他環境變數。
Chrome 位置
執行檔搜尋
| 平台 | 順序 |
|---|---|
| macOS | /Applications/Google Chrome.app/Contents/MacOS/Google Chrome → /Applications/Chromium.app/Contents/MacOS/Chromium |
| Linux | google-chrome → google-chrome-stable → chromium → chromium-browser(PATH 內) |
都找不到時交由 go-rod 決定瀏覽器來源,必要時自行下載。
設定檔根目錄
| 平台 | 路徑 |
|---|---|
| macOS | ~/Library/Application Support/Google/Chrome |
| Linux | ~/.config/google-chrome |
SameSession 使用以 Option.Profile 命名的子目錄。其他平台或目錄不存在時,呼叫改以不帶 Cookie 繼續。不讀取 ~/.config/chromium 下的 Chromium 設定檔。
外部指令
只有 SameSession 會執行外部指令:
| 指令 | 平台 | 用途 |
|---|---|---|
security |
macOS | 從鑰匙圈讀取 Chrome Safe Storage 密碼 |
secret-tool |
Linux | 從 Secret Service keyring 讀取同一組密碼 |
sqlite3 |
兩者 | 查詢複製出來的 Cookie 資料庫 |
容器
在 Docker 或 CI 中,把 Chrome 或 Chromium 裝在 PATH 上,不設 DISPLAY 以維持 headless,被擋的站點會直接回傳錯誤而不做有頭重試。no-sandbox 與 disable-dev-shm-usage 一律開啟,/dev/shm 過小不成問題。