
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
用于构建https://github.com/typicode/json-server%E5%BA%94%E7%94%A8%E7%9A%84Docker%E9%95%9C%E5%83%8F%E3%80%82
该镜像会自动为您设置应用,您只需挂载“数据库源文件”(约定名称为db.js)即可。您还可以选择挂载middleware.js和routes.json文件。
镜像版本基于https://github.com/typicode/json-server/releases%EF%BC%8C%E4%BD%86%E5%B9%B6%E9%9D%9E%E6%AF%8F%E4%B8%AA%E7%89%88%E6%9C%AC%E9%83%BD%E6%9C%89%E5%AF%B9%E5%BA%94%E7%9A%84%E9%95%9C%E5%83%8F%E3%80%82%E5%8F%AF%E5%9C%A8https://hub.docker.com/r/codfish/json-server%E6%9F%A5%E7%9C%8B%E5%8F%AF%E7%94%A8%E7%89%88%E6%9C%AC%E3%80%82
容器有两种方式运行json-server命令行工具。默认情况下会直接运行,您也可以通过nodemon运行(需将命令改为npm run dev),镜像已通过npm配置好此方式。
yamlversion: '3' services: json-server: image: codfish/json-server command: npm run dev volumes: - ./db.js:/app/db.js - ./routes.json:/app/routes.json:delegated - ./middleware.js:/app/middleware.js:delegated
直接测试镜像可运行:
shgit clone git@github.com:codfish/json-server-docker.git cd json-server-docker docker-compose up -d
推荐安装https://github.com/aj-may/dotdocker%EF%BC%8C%E4%B9%8B%E5%90%8E%E5%AE%B9%E5%99%A8%E5%8F%AF%E9%80%9A%E8%BF%87<[***]>访问。
json-server命令行选项详情:https://github.com/typicode/json-server#cli-usage
该镜像主要依赖json-server默认选项,但对--port和--host等选项设置了更适合容器环境的默认值。支持通过环境变量覆盖几乎所有选项:
| 选项 | 描述 | 默认值 |
|---|---|---|
PORT | 设置端口 | 80 |
HOST | 设置主机 | 0.0.0.0 |
ROUTES | 路由文件路径 | routes.json(镜像内置,可挂载覆盖) |
MIDDLEWARES | 中间件文件路径 | middleware.js(镜像内置,可挂载覆盖) |
CONFIG | 配置文件路径 | 遵循json-server默认值 |
ID | 设置数据库ID属性(例如:address) | 遵循json-server默认值 |
FKS | 设置外键后缀(例如:Address,如contractAddress中的Address) | 遵循json-server默认值 |
DELAY | 为响应添加延迟(毫秒) | - |
STATIC | 设置静态文件目录 | 遵循json-server默认值 |
QUIET | 抑制日志输出 | 仅在设置时为true(布尔标志) |
NO_GZIP | 禁用GZIP内容编码 | 仅在设置时为true(布尔标志) |
NO_CORS | 禁用跨域资源共享 | 仅在设置时为true(布尔标志) |
READ_ONLY | 仅允许GET请求 | 仅在设置时为true(布尔标志) |
本地开发推荐配置(含可选覆盖选项):
yamlservices: json-server: image: codfish/json-server command: npm run dev volumes: - ./db.js:/app/db.js:delegated - ./routes.json:/app/routes.json:delegated - ./middleware.js:/app/middleware.js:delegated environment: VIRTUAL_HOST: json-server.docker FKS: Address ID: address NO_CORS: 'true' NO_GZIP: 'true'
构建模拟API时,可使用镜像内置的Lodash和https://github.com/Marak/faker.js%E7%94%9F%E6%88%90%E5%81%87%E6%95%B0%E6%8D%AE%E3%80%82%E7%A4%BA%E4%BE%8B%60db.js%60%E6%96%87%E4%BB%B6%EF%BC%9A
jsconst faker = require('faker'); const times = require('lodash/times'); const startCase = require('lodash/startCase'); module.exports = () => ({ posts: times(100, index => ({ id: index, title: startCase(faker.lorem.words(3)), body: faker.lorem.paragraphs(3), // 其他字段... })), });
Dockerfile中更新json-server版本shdocker-compose up -d --build
访问<[***]>,修改db.js、routes.json或middleware.js后刷新页面即可测试更改。
新版本:
shgit tag -f -m 'v0.17.0' v0.17.0 git push origin v0.17.0
更新旧版本(仅修改镜像实现时):
shgit tag -fa v0.16.1 -m "Update v0.16.1 tag" && git push origin v0.16.1 --force
Docker Hub会在GitHub推送新标签时自动构建镜像。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务