
如果你使用 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化的https://github.com/pact-foundation/pact_broker%EF%BC%8C%E5%8F%AF%E4%BB%8Ehttps://hub.docker.com/r/dius/pact-broker/%E6%8B%89%E5%8F%96%60dius/pact-broker%60%E9%95%9C%E5%83%8F%E3%80%82Pact Broker是用于存储和管理Pact契约的工具,支持契约版本控制、验证结果跟踪及团队协作。
注意:Pact Foundation组织提供了更小的镜像
pactfoundation/pact-broker(压缩后仅98MB),无需root权限运行,默认端口从80变更为9292,环境变量配置兼容,可直接替换使用。
标签格式变更:2018年5月12日起,Docker标签格式从
M.m.p-RELEASE变更为M.m.p.RELEASE(M.m.p为Pact Broker包的语义化版本),以便Dependabot识别版本更新。
timeout或gtimeout,可通过brew install coreutils安装gtimeout数据库连接配置
可通过两种方式配置数据库连接:
1. 直接设置数据库URL
PACT_BROKER_DATABASE_URL=driver://username:password@host:port/database
示例:postgres://user1:pass1@myhost/mydb
2. 单独设置数据库参数
| 环境变量 | 说明 | 默认值 |
|---|---|---|
PACT_BROKER_DATABASE_ADAPTER | 数据库适配器 | postgres(支持mysql2、sqlite) |
PACT_BROKER_DATABASE_USERNAME | 数据库用户名 | - |
PACT_BROKER_DATABASE_PASSWORD | 数据库密码 | - |
PACT_BROKER_DATABASE_HOST | 数据库主机 | - |
PACT_BROKER_DATABASE_NAME | 数据库名 | - |
PACT_BROKER_DATABASE_PORT | 数据库端口 | 适配器默认端口 |
数据库高级配置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
PACT_BROKER_DATABASE_SSLMODE | PostgreSQL SSL模式(仅PostgreSQL) | - |
PACT_BROKER_SQL_LOG_LEVEL | SQL日志级别 | debug |
PACT_BROKER_SQL_LOG_WARN_DURATION | SQL查询超时警告时间(秒) | 5 |
PACT_BROKER_DATABASE_MAX_CONNECTIONS | 连接池最大连接数 | 4 |
PACT_BROKER_DATABASE_POOL_TIMEOUT | 连接获取超时(秒) | 5 |
注意:SQLite仅推荐用于测试/临时环境,需将数据库文件挂载到外部文件系统以持久化数据。
基本认证配置
启用基本认证需设置以下环境变量:
| 环境变量 | 说明 |
|---|---|
PACT_BROKER_BASIC_AUTH_USERNAME | 读写权限用户名 |
PACT_BROKER_BASIC_AUTH_PASSWORD | 读写权限密码 |
PACT_BROKER_BASIC_AUTH_READ_ONLY_USERNAME | 只读权限用户名 |
PACT_BROKER_BASIC_AUTH_READ_ONLY_PASSWORD | 只读权限密码 |
PACT_BROKER_ALLOW_PUBLIC_READ=true其他核心配置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
PACT_BROKER_PUBLIC_HEARTBEAT | 公开心跳URL(用于AWS自动扩展组) | false |
PACT_BROKER_LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR/FATAL) | - |
PACT_BROKER_WEBHOOK_HOST_WHITELIST | Webhook主机白名单(空格分隔,支持正则表达式) | - |
PACT_BROKER_WEBHOOK_SCHEME_WHITELIST | Webhook协议白名单 | https |
PACT_BROKER_BASE_URL | 强制基础URL(解决IP代替主机名问题) | - |
PACT_BROKER_DISABLE_SSL_VERIFICATION | 禁用Webhook SSL验证 | false |
基本运行(PostgreSQL)
bashdocker run -d \ -p 80:80 \ -e PACT_BROKER_DATABASE_URL=postgres://user:pass@postgres-host:5432/pact_broker \ --name pact-broker \ dius/pact-broker
带基本认证
bashdocker run -d \ -p 80:80 \ -e PACT_BROKER_DATABASE_URL=postgres://user:pass@postgres-host:5432/pact_broker \ -e PACT_BROKER_BASIC_AUTH_USERNAME=admin \ -e PACT_BROKER_BASIC_AUTH_PASSWORD=secret \ -e PACT_BROKER_BASIC_AUTH_READ_ONLY_USERNAME=reader \ -e PACT_BROKER_BASIC_AUTH_READ_ONLY_PASSWORD=readersecret \ --name pact-broker \ dius/pact-broker
创建docker-compose.yml:
yamlversion: '3' services: postgres: image: postgres:13 environment: POSTGRES_USER: pact POSTGRES_PASSWORD: pact POSTGRES_DB: pact_broker volumes: - postgres_data:/var/lib/postgresql/data pact-broker: image: dius/pact-broker ports: - "80:80" environment: PACT_BROKER_DATABASE_URL: postgres://pact:pact@postgres:5432/pact_broker PACT_BROKER_BASIC_AUTH_USERNAME: admin PACT_BROKER_BASIC_AUTH_PASSWORD: secret depends_on: - postgres volumes: postgres_data:
启动服务:
bashdocker-compose up -d
访问Broker:
bashcurl http://localhost # 浏览器访问 http://localhost
-p 80:80,避免Rack中间件因端口问题返回404docker-machine ip $(docker-machine active)获取访问IPpactfoundation/pact-broker镜像默认端口为9292,环境变量兼容,可直接替换参见https://github.com/pact-foundation/pact-broker-docker/wiki/Troubleshooting
Pact Broker应用文档:Pact Broker官方文档
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务