
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务