
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
couchbasefakeit是一个专为测试和本地开发设计的Docker镜像。它在Docker容器中启动单个独立的Couchbase Server实例,并使用您定义的桶、索引和假数据对其进行初始化。假数据通过FakeIt生成。
该镜像可显著减少开发摩擦,提供快速轻松地启动预配置Couchbase服务器的方式。通过在源代码控制仓库中包含Dockerfile及相关配置文件,您可以将开发数据定义与应用程序一起版本化管理。
最新版本可通过以下命令拉取:
shdocker pull btburnett3/couchbasefakeit:latest
latest标签对应最新的Couchbase企业版及最新版本的FakeIt。
也可使用特定版本,例如enterprise-4.6.3,表示Couchbase企业版4.6.3版本。
要使用couchbasefakeit,需创建自己的Dockerfile,以couchbasefakeit作为基础镜像。然后将配置文件添加到新镜像的/startup目录。您还可以覆盖环境变量以更改Couchbase Server配置。
dockerfileFROM btburnett3/couchbasefakeit:latest # 自定义环境变量 ENV CB_DATARAM=256 \ CB_PASSWORD=mypassword # 复制文件 COPY . /startup/
可通过以下环境变量修改Couchbase Server配置:
| 环境变量 | 描述 |
|---|---|
| CB_DATARAM | 数据服务内存(MB),默认512 |
| CB_INDEXRAM | 索引服务内存(MB),默认256 |
| CB_SEARCHRAM | 搜索(FTS)服务内存(MB),默认256 |
| CB_SERVICES | 启用的服务,默认kv,n1ql,index,fts |
| CB_INDEXSTORAGE | 索引存储模式,forestdb(默认)或memory_optimized |
| CB_USERNAME | Couchbase用户名,默认Administrator |
| CB_PASSWORD | Couchbase密码,默认password |
CB_SERVICES和CB_INDEXSTORAGE的值对应Couchbase REST API的参数。
要配置桶,只需在镜像的/startup目录中放置buckets.json文件。该文件应包含桶定义对象的数组。
json[ { "name": "sample", "ramQuotaMB": 100, "bucketType": "membase", "authType": "sasl", "saslPassword": "", "evictionPolicy": "fullEviction", "replicaNumber": 0, "flushEnabled": 1 }, { "name": "default", "ramQuotaMB": 100, "bucketType": "membase", "authType": "sasl", "saslPassword": "", "evictionPolicy": "fullEviction", "replicaNumber": 0, "flushEnabled": 1 } ]
此文件中的属性名称和值与Couchbase REST API创建桶端点对应。
如果未在镜像中覆盖此文件,将默认创建一个名为default、RAM配额为100MB的桶。
要使用FakeIt生成数据,在/startup目录下创建以桶名命名的目录,并在该目录下创建models子目录。例如/startup/sample/models(名称区分大小写)。将FakeIt YAML模型添加到models目录。
FakeIt将在启动过程中自动使用这些模型运行。您还可以在镜像中包含输入文件(如CSV),供模型引用。
此过程在索引创建前执行,以避免索引更新影响数据插入性能。
要创建视图,在/startup目录下创建以桶名命名的目录,并在其中放置名为views.json的文本文件。该文件应为包含一个或多个设计文档规范的JSON对象,每个属性名称为设计文档名称。
json{ "customers": { "views": { "CustomersByFirstName": { "map": "function (doc, meta) {\n if ((doc.type === \"customer\") && doc.firstName) {\n emit(doc.firstName, null);\n }\n}" } } } }
设计文档语法示例可参考Couchbase文档。注意views.json比Couchbase示例多一层嵌套,支持在单个文件中定义多个设计文档。
要创建索引,在/startup目录下创建以桶名命名的目录,并在其中放置名为indexes.n1ql的文件。例如/startup/default/indexes.n1ql(名称区分大小写)。
在此文件中,可定义CREATE INDEX语句(以分号分隔)。为提高性能,建议所有索引使用WITH {"defer_build": true},并在文件末尾使用BUILD INDEX语句。
sqlCREATE PRIMARY INDEX `#primary` ON default WITH {"defer_build": true}; CREATE INDEX `Types` ON default (`type`) WITH {"defer_build": true}; BUILD INDEX ON default (`#primary`, `Types`)
此外,可在/startup/<bucketname>/indexes文件夹下添加包含索引定义的YAML文件。此操作使用couchbase-index-manager创建索引。详见此处了解YAML文件格式说明。
要创建FTS索引,在/startup目录下创建以桶名命名的目录,并在其中创建fts子目录。在fts目录中,为每个索引添加JSON文件,文件名即为索引名。例如/startup/default/fts/my_index.json(名称区分大小写)。
在该文件中放置JSON索引定义,可从Couchbase控制台轻松导出。
要创建FTS索引别名,在同一文件夹中添加名为aliases.json的文件。该文件应为对象,每个属性为别名名称,值为索引名数组。
json{ "my_alias": ["my_index"], "my_second_alias": ["my_index_2", "my_index_3"] }
示例镜像配置可在此处查看。
本地运行示例步骤:
git clone https://github.com/brantburnett/couchbasefakeit.gitcd couchbasefakeit/exampledocker-compose up -d关闭并清理:
docker-compose down更多FakeIt模型示例详见https://github.com/bentonam/fakeit/tree/dev/test/fixtures/models%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务