CookLikeHOC 部署指南:从本地 5 分钟跑通到 Docker 上线的 3 种落地姿势
【免费下载链接】CookLikeHOC🥢像老乡鸡🐔那样做饭。已添加2026年发布的《老乡鸡菜品溯源报告 2.0中新出现的菜品。主要部分于2024年完工,非老乡鸡官方仓库。文字来自《老乡鸡菜品溯源报告》,并做归纳、编辑与整理。CookLikeHOC.项目地址: https://gitcode.com/GitHub_Trending/co/CookLikeHOC
你手上有 337 道老乡鸡菜品的配料与步骤,却散落在各处,没法按"周末炖锅菜""30 分钟出餐"这种场景检索?CookLikeHOC 是一个 Markdown 菜谱库加 VitePress 静态站,一次构建就能把全部菜谱变成可搜索、可容器化部署的文档站。这篇文章带你从本地跑通到上线。
能力速览
| 指标 | 数值 |
|---|---|
| 菜品条目 | 337 篇 Markdown,覆盖 15 个分类目录 |
| 配图 | 192 张实拍图,按菜名一一对应 |
| 技术栈 | VitePress 1.3.4 + Node 22 + nginx:1-alpine |
| 典型用途 | 家庭菜谱检索、菜品配料数据源、静态站部署 |
不展开原理,记住一点:它没有后端,全部是静态产物,部署门槛就是"能跑一次 build"。
五分钟跑通:装依赖到出站
git clone https://gitcode.com/GitHub_Trending/co/CookLikeHOC cd CookLikeHOC npm install # 依赖只有 vitepress 一个,装得很快 npm run docs:build # prebuild 预生成索引后再 build,不能跳过 ls .vitepress/dist # 看到 index.html 即构建成功npm run docs:build实际是先跑 generate-indexes.mjs 预生成各分类索引,再执行vitepress build .,产物落在.vitepress/dist/。想看效果用npx vitepress preview .起个静态服务,或直接把 dist 丢给任意静态服务器。
三种落地姿势
姿势一:本地开发(日常维护选它)
npm run docs:dev # 内部也是先 prebuild 再 vitepress dev # 浏览器打开 http://localhost:5173/热更新开着,改任何一篇菜谱 Markdown 页面秒刷。适合你持续补菜、修配料的场景。
姿势二:Docker 容器化(无 Node 环境的服务器选它)
cd docker_support docker build -t cooklikehoc:0.0.1 -f Dockerfile . docker run -d --name cooklikehoc -p 3001:80 cooklikehoc:0.0.1 # 浏览器访问 http://localhost:3001/Dockerfile 是两段式:第一段 node:22-alpine 构建,第二段 nginx:1-alpine 只跑静态文件,最终镜像几十 MB。说明见 docker_support/README.md。
姿势三:当数据源批量处理(想拿配料数据选它)
import re, pathlib, json root = pathlib.Path("CookLikeHOC") data = [] for d in root.iterdir(): # 遍历 15 个分类目录 if not d.is_dir(): continue for md in d.glob("*.md"): text = md.read_text(encoding="utf-8") m = re.search(r"## 配料\n(.*?)\n##", text, re.S) if m: data.append({"name": md.stem, "cat": d.name, "ing": m.group(1)}) print(json.dumps(data[:2], ensure_ascii=False, indent=2))Markdown 是结构化数据,脚本遍历一遍就能把配料全部提出来,喂给采购清单脚本或周菜单生成器。
性能调优与瓶颈定位
- 索引预生成:首页链接由 prebuild 脚本产出,新增分类目录后记得同步修改 generate-indexes.mjs,否则索引缺页。
- 图片体积:192 张图单张基本在 200KB 以内;你要补图时,建议压到 500KB 以内再提交,否则整站首屏流量被拖累。
- 两段式镜像:node 阶段只参与构建,运行阶段只剩 nginx,VPS 1GB 内存就够跑;多实例水平扩容也直接复制容器即可。
上线自检清单
- ✅ Node ≥ 18(构建阶段),运行阶段仅需 nginx
- ✅
npm run docs:build退出码为 0,.vitepress/dist/存在 index.html - ✅ Docker 端口映射 3001:80,
curl -I localhost:3001返回 200 - ✅ nginx 配置含
try_files $uri $uri/ /index.html(见 default.conf) - ✅ 镜像 tag 固定(如 cooklikehoc:0.0.1),不用 latest 裸奔
- ✅ 监控三件事:构建时长、dist 产物体积、线上 404 占比
高频问题排查
build 报缺少分类索引原因:prebuild 没跑,直接执行了 vitepress build。 解法:用npm run docs:build,别手动拆步骤。
容器起来了,宿主机却打不开页面原因:容器内监听地址问题,README 里特意带-e HOST=0.0.0.0。 解法:按 docker_support/README.md 的完整命令重跑,确认 3001 端口没被占用。
直接访问某菜品页 404,站内跳转却正常原因:静态服务器没配 SPA 兜底路由。 解法:确保 try_files 指向 /index.html,或改用相对路径链接访问。
下一步
把npm run prebuild:indexes的产物接进全文搜索,再按配料反查菜品、按步骤数排序,站点就能当"家庭点菜系统"用。想再往前,可以把姿势三的 JSON 接进你的点餐 App,或写个定时任务拉仓库做增量对比——《菜品溯源报告 2.0》新收录的菜品会自动进库,站也就跟着自动更新。
【免费下载链接】CookLikeHOC🥢像老乡鸡🐔那样做饭。已添加2026年发布的《老乡鸡菜品溯源报告 2.0中新出现的菜品。主要部分于2024年完工,非老乡鸡官方仓库。文字来自《老乡鸡菜品溯源报告》,并做归纳、编辑与整理。CookLikeHOC.项目地址: https://gitcode.com/GitHub_Trending/co/CookLikeHOC
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考