文件 v0.3.2

執行環境

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 過小不成問題。

EN