
bbyars/mountebankmountebank是一款开源的服务虚拟化工具,用于创建和管理模拟服务(mocks),帮助开发和测试团队在不依赖真实服务的情况下进行工作。本Docker镜像提供了mountebank的容器化部署方案,简化了工具的安装和配置流程,确保跨环境的一致性和快速启动能力。通过该镜像,用户可快速部署支持多协议的模拟服务,降低对外部依赖的耦合,提升开发和测试效率。
bashdocker run -d -p 2525:2525 --name mountebank jkris/mountebank
http://localhost:2525 验证服务是否启动(返回mountebank版本信息)。将本地自定义的mountebank配置文件(JSON格式)挂载到容器内,并通过命令行参数指定配置文件路径:
bash# 假设本地配置文件路径为 ./mb-config/mocks.json docker run -d \ -p 2525:2525 \ -p 8080:8080 \ # 暴露模拟HTTP服务端口(根据配置文件定义) -v $(pwd)/mb-config:/mb/config \ --name mountebank \ jkris/mountebank \ --configfile /mb/config/mocks.json
json{ "imposters": [ { "port": 8080, "protocol": "http", "stubs": [ { "responses": [ { "is": { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": { "message": "Mocked HTTP response" } } } ] } ] } ] }
http://localhost:8080 可获取上述配置定义的模拟响应。yamlversion: '3.8' services: mountebank: image: jkris/mountebank container_name: mountebank ports: - "2525:2525" # 管理API端口 - "8080:8080" # 模拟HTTP服务端口 - "443:443" # 模拟HTTPS服务端口(如需) volumes: - ./mb-config:/mb/config # 挂载配置文件目录 - ./mb-logs:/var/log/mountebank # 挂载日志目录(可选) command: --configfile /mb/config/mocks.json --loglevel debug # 启动命令(指定配置文件和日志级别) restart: unless-stopped # 容器退出时自动重启(除非手动停止)
mountebank主要通过命令行参数进行配置,常用参数如下:
| 参数名 | 说明 | 默认值 |
|---|---|---|
--port | 管理API端口(用于通过REST API动态配置模拟服务) | 2525 |
--configfile | JSON配置文件路径,用于预定义模拟规则(imposters) | 无 |
--loglevel | 日志级别(可选值:debug、info、warn、error) | info |
--allowInjection | 是否允许通过REST API动态注入/修改模拟规则(true/false) | true |
--httpsPort | 全局HTTPS服务端口(如需统一HTTPS模拟) | 无 |
--tcpPort | 全局TCP服务端口(如需统一TCP模拟) | 无 |
mocks.json)通过卷挂载到容器内(如 /mb/config 目录),便于修改和版本控制/var/log/mountebank),需确保容器内目录有写入权限chmod 755 ./mb-config),避免容器内权限不足导致配置文件无法读取-p 参数映射到宿主机,否则宿主机无法访问docker logs mountebank 排查)jkris/mountebank:2.8.1)以确保版本稳定性,避免自动升级导致配置不兼容manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务