
快速部署 kage Docker 鏡像離線鏡像站一鍵搭建與 Chrome 路徑自定義配置指南【免費下載鏈接】kageShadow any website for offline viewing, with the JavaScript stripped out項目地址: https://gitcode.com/gh_mirrors/kage6/kagekage影是一款用真實無頭 Chrome 渲染網(wǎng)頁、剝離全部 JavaScript后把整站克隆為可離線瀏覽文件的鏡像工具。通過官方 Docker 鏡像你無需在宿主機安裝 Chrome一條命令即可搭好離線鏡像站配合KAGE_CHROME環(huán)境變量與--chrome參數(shù)還能精確控制 kage 使用哪個 Chrome 二進制。本文面向新手完整講解 kage Docker 部署流程與 Chrome 路徑自定義配置方法。 為什么用 Docker 部署 kagekage 的核心流程是種子 URL → 無頭 Chrome 渲染 → 快照最終 DOM → 剔除腳本 → 資產(chǎn)本地化 → 落盤。這意味著它必須有一個可用的 Chrome/Chromium。直接安裝時需要你自行解決瀏覽器依賴而官方容器鏡像把這些全部打包好了鏡像內(nèi)置內(nèi)容作用Alpine 3.21 kage 靜態(tài)二進制多平臺amd64/arm64開箱即用Chromium負責(zé)頁面渲染無需宿主裝瀏覽器ca-certificates / tzdataHTTPS 抓取與正確時間戳font-noto 字體渲染出的頁面文字不會缺字鏡像定義見 Dockerfile構(gòu)建時通過 GoReleaser 用 buildx 打包多平臺版本并把已交叉編譯好的靜態(tài)二進制直接COPY進鏡像構(gòu)建很快。 Docker 鏡像部署一條命令搞定部署的關(guān)鍵是一個掛載卷——容器把工作目錄和HOME都指向/out所以只要把宿主機的目錄掛到/out鏡像產(chǎn)物就直接落在你本地docker run -v $PWD/out:/out ghcr.io/tamnd/kage clone paulgraham.com運行結(jié)束后鏡像文件位于宿主機的./out/paulgraham.com/里面是可離線打開的.html頁面、本地化的 CSS/圖片/字體以及記錄斷點狀態(tài)的_kage/state.json布局詳見 docs/content/reference/configuration.md。幾個新手常踩的點鏡像文件落盤位置容器內(nèi)默認輸出根是$HOME/data/kage而 Dockerfile 已把HOME設(shè)為/out因此產(chǎn)物統(tǒng)一出現(xiàn)在掛載卷里不會藏在容器內(nèi)部。為什么容器以 root 運行這是有意為之。宿主機綁定的/out屬主隨環(huán)境變化只有 root 能可靠寫入若不可寫不僅克隆失敗Chrome 還會因崩潰數(shù)據(jù)庫路徑為空而整體啟動失敗。容器內(nèi) Chrome 沙箱本就會被自動關(guān)閉所以 root 不會帶來額外風(fēng)險詳見 Dockerfile 注釋。可斷點續(xù)爬kage 的抓取是冪等的中斷后重跑會讀取_kage/state.json跳過已完成頁面。若只是想一次性跑完不留狀態(tài)可加--no-resume。進階用法定期刷新鏡像配合--refresh讓舊鏡像原地重渲染、抓到網(wǎng)站更新非常適合放進定時任務(wù)# 每周刷新一次離線鏡像 30 3 * * 0 docker run -v /srv/mirror:/out ghcr.io/tamnd/kage clone example.com --refresh想給大站做范圍控制只抓某個欄目、限制頁數(shù)和深度推薦先看 docs/content/guides/scoping-a-crawl.md。 kage 的 Chrome 路徑是怎么找的kage 啟動瀏覽器時的查找順序是固定的實現(xiàn)見 browser/pool.go--chrome命令行參數(shù)優(yōu)先級最高KAGE_CHROME環(huán)境變量CHROME_BIN環(huán)境變量內(nèi)置查找器 各平臺常見安裝路徑各平臺自動探測的默認路徑平臺自動探測位置Linux/usr/bin/google-chrome、/usr/bin/google-chrome-stable、/usr/bin/chromium、/usr/bin/chromium-browsermacOS/Applications/Google Chrome.app/...、/Applications/Chromium.app/...WindowsC:\Program Files\Google\Chrome\Application\chrome.exe等如果以上都沒找到kage 的啟動器可以在首次使用時自動下載一份私有 Chromium——但生產(chǎn)環(huán)境還是建議顯式指定路徑行為更可控。 自定義 Chrome 路徑配置三種方式環(huán)境變量參考見 docs/content/reference/configuration.md。方式一--chrome參數(shù)一次性指定kage clone example.com --chrome /path/to/chromium方式二KAGE_CHROME環(huán)境變量推薦全局生效export KAGE_CHROME/opt/chrome/chrome方式三CHROME_BIN回退變量KAGE_CHROME未設(shè)置時讀取它常與其他工具共用的場景很方便。在 Docker 場景里Dockerfile 已經(jīng)替你設(shè)置好了KAGE_CHROME/usr/bin/chromium-browser指向鏡像內(nèi)置 Chromium所以容器內(nèi)無需任何額外配置如果你要構(gòu)建自定義鏡像比如換更高版本 Chromium 或加字體只要保證新路徑與KAGE_CHROME一致即可。? 部署后如何驗證離線鏡像在宿主機執(zhí)行kage serve out/paulgraham.com瀏覽器打開http://127.0.0.1:8800頁面應(yīng)能正常點擊跳轉(zhuǎn)、加載本地圖片與樣式且完全不需要外網(wǎng)抽查任意.html文件確認沒有script標簽、onclick或javascript:鏈接——這正是 kage 的核心價值你拿到的是渲染完成后的最終畫面而不是一個試圖聯(lián)網(wǎng)的薄客戶端。 總結(jié)目標命令/配置快速部署離線鏡像站docker run -v $PWD/out:/out ghcr.io/tamnd/kage clone 域名指定 Chrome 路徑--chrome/KAGE_CHROME/CHROME_BIN容器內(nèi) Chromium 路徑鏡像已內(nèi)置KAGE_CHROME/usr/bin/chromium-browser定期抓取更新cron --refresh從docker run到離線可讀的整站鏡像只需要一條命令而 Chrome 路徑的三級配置參數(shù) → 環(huán)境變量 → 自動探測讓你在任何環(huán)境下都能讓 kage 精確使用你想用的瀏覽器。需要源碼級細節(jié)時可參考 browser/pool.go 的啟動器實現(xiàn)與 Dockerfile 的鏡像構(gòu)建說明?!久赓M下載鏈接】kageShadow any website for offline viewing, with the JavaScript stripped out項目地址: https://gitcode.com/gh_mirrors/kage6/kage創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考