
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像用于部署Couchbase Mobile后端环境,并在其上执行功能测试和性能测试。支持本地迭代开发、Jenkins CI/CD测试执行、网络流量捕获分析以及自定义镜像构建,为Couchbase Mobile相关组件的测试提供完整环境。
重要前置说明
clean.sh清除挂载卷中的陈旧状态(如.pyc文件、测试缓存等)docker/create_cluster.py所需依赖,需重新执行source setup.sh:
bash$ source setup.sh
本地开发环境配置
通过挂载本地开发目录到容器,实现代码实时修改与测试执行。
使用"docker in docker"模式
本地机器执行(挂载本地目录和配置文件):
bash$ docker run --privileged -it --network=cbl --name mobile-testkit \ -v $(pwd):/opt/mobile-testkit \ -v $(pwd)/resources/pool.json:/opt/mobile-testkit/resources/pool.json \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ couchbase/mobile-testkit /bin/bash
远程机器执行(无需挂载本地目录,手动复制配置文件):
bashdocker run --privileged -it --network=cbl --name mobile-testkit \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ couchbase/mobile-testkit /bin/bash
之后需手动将主机的pool.json文件复制到容器中。
Centos7主机 workaround(解决libltdl.so.7缺失错误):
bashdocker run ... -v /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7 ...
容器内操作步骤
进入容器后执行以下命令配置测试环境:
bash# 复制并修改ansible配置 cp ansible.cfg.example ansible.cfg sed -i 's/remote_user = vagrant/remote_user = root/' ansible.cfg # 生成集群配置 python libraries/utilities/generate_clusters_from_pool.py --use-docker # 执行测试(示例) pytest -s --mode=cc --server-version=4.6.1 --sync-gateway-version=1.4.0.2-3 testsuites/syncgateway/functional/tests
执行完整测试套件(Jenkins适用)
通过entrypoint.sh执行预设测试套件(适用于CI/CD流程):
cc/no xattrs模式:
bashdocker run --rm --privileged --network=cbl --name mobile-testkit \ -v hosts.json:/opt/mobile-testkit/hosts.json \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ mobile-testkit-local ./entrypoint.sh master base_cc 'pytest -s --sequoia --server-version=4.6.2 --sync-gateway-version=1.4.1-3 testsuites/functional/tests/'
网络流量捕获
在运行Docker的Linux主机上捕获测试相关网络流量:
bash# 安装tcpdump $ yum install -y tcpdump # 捕获docker0接口4984端口流量并保存 $ tcpdump -i docker0 -w /tmp/docker.pcap port 4984 ^C # 按Ctrl+C停止捕获
将/tmp/docker.pcap文件传输到OSX主机,使用Wireshark打开即可分析测试套件与Sync Gateway之间的HTTP流量。
本地重建镜像
若Docker Hub上的镜像不是最新版本,可本地重建:
bash$ cd docker/mobile-testkit $ docker build -t mobile-testkit-dev .
在OSX上交叉编译Sync Gateway并部署到容器
OSX主机上编译:
bash$ ./build.sh && rm -f sync_gateway && GOOS=linux GOARCH=amd64 go build -v github.com/couchbase/sync_gateway && cp sync_gateway /tmp/cbl.1-sg/sync_gateway/
容器内部署:
bash$ cd /home/sync_gateway && systemctl stop sync_gateway && \ rm -f /opt/couchbase-sync-gateway/bin/sync_gateway && \ cp sync_gateway /opt/couchbase-sync-gateway/bin/sync_gateway && \ systemctl restart sync_gateway
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务