ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

快速部署 kage Docker 镜像:离线镜像站一键搭建与 Chrome 路径自定义配置指南

快速部署 kage Docker 镜像:离线镜像站一键搭建与 Chrome 路径自定义配置指南 快速部署 kage Docker 镜像离线镜像站一键搭建与 Chrome 路径自定义配置指南【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kagekage影是一款用真实无头 Chrome 渲染网页、剥离全部 JavaScript后把整站克隆为可离线浏览文件的镜像工具。通过官方 Docker 镜像你无需在宿主机安装 Chrome一条命令即可搭好离线镜像站配合KAGE_CHROME环境变量与--chrome参数还能精确控制 kage 使用哪个 Chrome 二进制。本文面向新手完整讲解 kage Docker 部署流程与 Chrome 路径自定义配置方法。 为什么用 Docker 部署 kagekage 的核心流程是种子 URL → 无头 Chrome 渲染 → 快照最终 DOM → 剔除脚本 → 资产本地化 → 落盘。这意味着它必须有一个可用的 Chrome/Chromium。直接安装时需要你自行解决浏览器依赖而官方容器镜像把这些全部打包好了镜像内置内容作用Alpine 3.21 kage 静态二进制多平台amd64/arm64开箱即用Chromium负责页面渲染无需宿主装浏览器ca-certificates / tzdataHTTPS 抓取与正确时间戳font-noto 字体渲染出的页面文字不会缺字镜像定义见 Dockerfile构建时通过 GoReleaser 用 buildx 打包多平台版本并把已交叉编译好的静态二进制直接COPY进镜像构建很快。 Docker 镜像部署一条命令搞定部署的关键是一个挂载卷——容器把工作目录和HOME都指向/out所以只要把宿主机的目录挂到/out镜像产物就直接落在你本地docker run -v $PWD/out:/out ghcr.io/tamnd/kage clone paulgraham.com运行结束后镜像文件位于宿主机的./out/paulgraham.com/里面是可离线打开的.html页面、本地化的 CSS/图片/字体以及记录断点状态的_kage/state.json布局详见 docs/content/reference/configuration.md。几个新手常踩的点镜像文件落盘位置容器内默认输出根是$HOME/data/kage而 Dockerfile 已把HOME设为/out因此产物统一出现在挂载卷里不会藏在容器内部。为什么容器以 root 运行这是有意为之。宿主机绑定的/out属主随环境变化只有 root 能可靠写入若不可写不仅克隆失败Chrome 还会因崩溃数据库路径为空而整体启动失败。容器内 Chrome 沙箱本就会被自动关闭所以 root 不会带来额外风险详见 Dockerfile 注释。可断点续爬kage 的抓取是幂等的中断后重跑会读取_kage/state.json跳过已完成页面。若只是想一次性跑完不留状态可加--no-resume。进阶用法定期刷新镜像配合--refresh让旧镜像原地重渲染、抓到网站更新非常适合放进定时任务# 每周刷新一次离线镜像 30 3 * * 0 docker run -v /srv/mirror:/out ghcr.io/tamnd/kage clone example.com --refresh想给大站做范围控制只抓某个栏目、限制页数和深度推荐先看 docs/content/guides/scoping-a-crawl.md。 kage 的 Chrome 路径是怎么找的kage 启动浏览器时的查找顺序是固定的实现见 browser/pool.go--chrome命令行参数优先级最高KAGE_CHROME环境变量CHROME_BIN环境变量内置查找器 各平台常见安装路径各平台自动探测的默认路径平台自动探测位置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——但生产环境还是建议显式指定路径行为更可控。 自定义 Chrome 路径配置三种方式环境变量参考见 docs/content/reference/configuration.md。方式一--chrome参数一次性指定kage clone example.com --chrome /path/to/chromium方式二KAGE_CHROME环境变量推荐全局生效export KAGE_CHROME/opt/chrome/chrome方式三CHROME_BIN回退变量KAGE_CHROME未设置时读取它常与其他工具共用的场景很方便。在 Docker 场景里Dockerfile 已经替你设置好了KAGE_CHROME/usr/bin/chromium-browser指向镜像内置 Chromium所以容器内无需任何额外配置如果你要构建自定义镜像比如换更高版本 Chromium 或加字体只要保证新路径与KAGE_CHROME一致即可。✅ 部署后如何验证离线镜像在宿主机执行kage serve out/paulgraham.com浏览器打开http://127.0.0.1:8800页面应能正常点击跳转、加载本地图片与样式且完全不需要外网抽查任意.html文件确认没有script标签、onclick或javascript:链接——这正是 kage 的核心价值你拿到的是渲染完成后的最终画面而不是一个试图联网的薄客户端。 总结目标命令/配置快速部署离线镜像站docker run -v $PWD/out:/out ghcr.io/tamnd/kage clone 域名指定 Chrome 路径--chrome/KAGE_CHROME/CHROME_BIN容器内 Chromium 路径镜像已内置KAGE_CHROME/usr/bin/chromium-browser定期抓取更新cron --refresh从docker run到离线可读的整站镜像只需要一条命令而 Chrome 路径的三级配置参数 → 环境变量 → 自动探测让你在任何环境下都能让 kage 精确使用你想用的浏览器。需要源码级细节时可参考 browser/pool.go 的启动器实现与 Dockerfile 的镜像构建说明。【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表