news 2026/9/5 22:04:23

CookLikeHOC 部署指南:从本地 5 分钟跑通到 Docker 上线的 3 种落地姿势

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CookLikeHOC 部署指南:从本地 5 分钟跑通到 Docker 上线的 3 种落地姿势

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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 22:03:19

LeRobot教程:5分钟跑通你的第一个机器人策略

LeRobot教程:5分钟跑通你的第一个机器人策略 【免费下载链接】lerobot 🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot 想让你的机械臂抓起杯子&#…

作者头像 李华
网站建设 2026/9/5 21:59:46

LDPC仿真到硬件部署的全链路工程实践

简介:本资源是一套面向通信工程专业学生、研究生及纠错编码初学者的LDPC码与喷泉码MATLAB仿真实践包,聚焦低密度奇偶校验码的原理理解、编译码实现与性能分析。压缩包共8个文件,全部为MATLAB脚本(.m),涵盖Q…

作者头像 李华
网站建设 2026/9/5 21:59:32

Slint 声明式动画上手:4 个参数、3 个配方让界面交互动起来

Slint 声明式动画上手:4 个参数、3 个配方让界面交互动起来 【免费下载链接】slint Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C, JavaScript, or Python apps. 项目地址: https://gitcode.com/GitHub_Trendin…

作者头像 李华
网站建设 2026/9/5 21:58:33

基于Vue+SpringBoot的轻量级菜谱推荐系统设计

简介:本资源是一套完整的基于Vue与SpringBoot的智能菜谱推荐系统毕业设计/课程设计实现方案,面向计算机专业本科生及Java前端全栈初学者,解决日常饮食决策中个性化、便捷化菜谱获取的实际问题。压缩包共584个文件,含123个Java后端…

作者头像 李华