
codfish/json-server用于构建json-server应用的Docker镜像。
该镜像会自动为您设置应用,您只需挂载“数据库源文件”(约定名称为db.js)即可。您还可以选择挂载middleware.js和routes.json文件。
镜像版本基于json-server的发布版本,但并非每个版本都有对应的镜像。可在此处查看可用版本。
容器有两种方式运行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 ***:codfish/json-server-docker.git cd json-server-docker docker-compose up -d
推荐安装dotdocker,之后容器可通过<[***]>访问。
json-server命令行选项详情:<[***]>
该镜像主要依赖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和faker.js生成假数据。示例db.js文件:
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推送新标签时自动构建镜像。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务