单一职责仓库:Docker 镜像,用于构建 GitBook 电子书。无应用代码,无 linter。
- 镜像:
bloodstar/gitbook-builder(Docker Hub) - CI:
.github/workflows/Build Image.yml— 推送main/master(含 Dependabot 自动合并)、推送v*标签、和workflow_dispatch时触发 - 构建触发器:
package.json中的gitbook-cli+honkit依赖 + Dependabot 新版本自动 PR - 多架构:
linux/amd64、linux/arm/v7、linux/arm64(通过 QEMU + Buildx) - 必要 Secret:
DOCKER_USERNAME、DOCKER_PASSWORD - 自动标签:
latest、gitbook-<version>、honkit-<major>、honkit-<major>.<minor>、honkit-<full> - Git 标签推送:
v<semver>(如v0.2.0) - 无本地构建快捷命令;单架构测试请用
docker buildx build或直接docker build .
- 基础镜像:
node:20-slim(基于 Debian,预装 Node.js 20,追踪最新 Debian 稳定版) - 构建时修补 GitBook CLI:用
sed注释掉graceful-fs/polyfills.js中的三行(防止新版 Node 崩溃) - Honkit(社区维护的 GitBook 分支)也以
honkit名称安装 — 即插即用,兼容book.json格式 - npm install 期间设置
PUPPETEER_SKIP_DOWNLOAD=true - 包含 OpenJDK 17 JRE(用于 PlantUML 插件)、Calibre(用于 epub/pdf)、Graphviz(用于 PlantUML 图表)
- 包含 Noto CJK 字体
- npm 镜像源(运行时):默认使用官方源。设置
-e NPM_CONFIG_REGISTRY=https://registry.npmmirror.com切换淘宝镜像
- 默认
CMD:gitbook --help(honkit也可用) ENTRYPOINT(entrypoint.sh)已注释掉 — 未启用entrypoint.sh(如启用):设置 SSH 密钥、git 配置、运行userRun.sh用于 npm/yarn 缓存设置volumes:/gitbook(工作区);暴露端口:4000
# 便捷别名
alias gitbook='docker run --rm -v "$PWD":/gitbook -p 4000:4000 bloodstar/gitbook-builder gitbook'
alias honkit='docker run --rm -v "$PWD":/gitbook -p 4000:4000 bloodstar/gitbook-builder honkit'
# GitBook(旧版,已修补可在 Node 20 上运行)
gitbook init
gitbook serve # 在 :4000 提供访问
gitbook build
gitbook pdf # 需要 Calibre(已包含)
gitbook epub # 需要 Calibre(已包含)
# Honkit(社区维护分支,推荐)
honkit init
honkit serve # 在 :4000 提供访问
honkit build
honkit pdf
honkit epubNPM_CONFIG_REGISTRY(默认空,使用官方 npm 源)
book.json— 默认 GitBook 配置(中文、Prism、page-treeview、tbfed-pagefooter、favicon 插件)package.json— Dependabot 触发器清单(监控gitbook-cli+honkit版本).github/dependabot.yml— Dependabot 配置,每周检查 npm 更新,新版本自动 PRentrypoint.sh— 完整自动化脚本(SSH 密钥、git 配置、用户钩子);包含大量已注释掉的deploy/server函数tests/docker_test.sh— 独立冒烟测试脚本(构建 + CLI 验证),在tests/reports/test-report-<timestamp>.log生成报告README.en.md/README.ja.md/README.ko.md/README.es.md/README.hi.md/README.ar.md/README.pt.md/README.bn.md/README.ru.md/README.fr.md/README.de.md— 多语言 README 翻译(12 种语言)
| 文档 | 内容 |
|---|---|
docs/GUIDE.md |
GitBook/Honkit 详细用法、插件配置、镜像加速 |
docs/ARCHITECTURE.md |
组件关系、技术栈、构建流程、设计决策 |
docs/REQUIREMENTS.md |
功能与非功能需求 |
docs/TESTING.md |
构建验证、运行时测试、自动测试脚本用法 |
docs/CHANGELOG.md |
版本变更历史 |
遵循 Karpathy 编码纪律(思考优先 / 简约优先 / 精准修改 / 目标驱动)。编码任务中通过 skill(name="karpathy-guidelines") 加载。
编码完成后,对核心逻辑、安全敏感、并发代码执行 Grill-me(对抗式审查):切换为挑剔审查者人格,穷举找出所有缺陷,修复后再审查,循环达标为止。详见 skill 第 5 节。
路径:~/Work/dev-experience/(gateway skill 自动加载)
本项目标签:docker、ci-cd、node、documentation、ssg