本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Pact CLI Docker镜像整合了Pact Ruby实现中的所有CLI工具,功能上与pact-ruby-standalone一致,但打包为Docker容器形式,提供单一顶层入口点pact。该镜像主要用于发布和验证契约(pacts),以及与Pact Broker进行交互,简化契约测试流程的集成和执行。
pact访问所有Pact CLI功能默认情况下,常规标签(如latest)仅构建amd64架构:
--platform=linux/amd64
docker run --rm -it pactfoundation/pact-cli:latest /bin/sh -c 'uname -sm'
多平台镜像可通过在任何发布标签后添加-multi获取,支持以下架构:
--platform=linux/amd64
--platform=linux/arm
--platform=linux/arm64
docker run --rm -it pactfoundation/pact-cli:latest-multi /bin/sh -c 'uname -sm'
可使用公共测试Pact Broker进行示例操作,设置以下环境变量:
export PACT_BROKER_BASE_URL="[***]" export PACT_BROKER_USERNAME="dXfltyFMgNOFZAxr8io9wJ37iUpY42M" export PACT_BROKER_PASSWORD="O5AIZWxelWbLvqMd8PkAVycBJh2Psyg1"
示例中的$(date +%s)用于生成伪随机GIT_COMMIT。若使用Bearer Token认证的Pact Broker(如PactFlow),请设置PACT_BROKER_TOKEN而非用户名和密码。
-v标志将本地pacts文件挂载到容器中,示例见下文。localhost的Pact Broker,需添加--network="host"参数,使容器解析localhost为宿主机而非容器自身。$ docker run --rm pactfoundation/pact-cli:latest help Commands: pact-broker # 与Pact Broker交互 publish PACT_DIRS_OR_FILES ... # 将pacts发布到Pact Broker verify PACT_URL ... # 针对提供者验证pact(s) version # 打印版本信息 help [COMMAND] # 描述可用命令或特定命令的帮助 $ docker run --rm pactfoundation/pact-cli:latest pact-broker help Commands: pact-broker can-i-deploy -a, --pacticipant=PACTICIPANT -b, --broker-base-url=BRO... # 检查是否可以部署 pact-broker create-version-tag -a, --pacticipant=PACTICIPANT -b, --broker-base-u... # 为版本创建标签 pact-broker create-webhook URL -X, --request=REQUEST -b, --broker-base-url=BROKE... # 创建Webhook pact-broker describe-version -a, --pacticipant=PACTICIPANT -b, --broker-base-url... # 描述版本信息 pact-broker help [COMMAND] ... # 显示命令帮助 pact-broker publish PACT_DIRS_OR_FILES ... -a, --consumer-app-version=CONSUMER_A... # 发布pacts到Broker pact-broker version ... # 显示版本
可克隆仓库***:pact-foundation/pact-ruby-cli.git([***]
docker run --rm \ -w ${PWD} \ -v ${PWD}:${PWD} \ -e PACT_BROKER_BASE_URL \ -e PACT_BROKER_USERNAME \ -e PACT_BROKER_PASSWORD \ pactfoundation/pact-cli:latest \ publish \ ${PWD}/example/pacts \ --consumer-app-version fake-git-sha-for-demo-$(date +%s) \ --tag-with-git-branch
所有发布选项详见官方文档。
docker run --rm \ -e PACT_BROKER_BASE_URL \ -e PACT_BROKER_USERNAME \ -e PACT_BROKER_PASSWORD \ pactfoundation/pact-cli:latest \ publish \ /pact/example/pacts \ --consumer-app-version fake-git-sha-for-demo-$(date +%s)
参考示例docker-compose-verify.yml:
PACT_BROKER_PUBLISH_VERIFICATION_RESULTS=true GIT_COMMIT=fake-git-sha-for-demo$(date +%s) GIT_BRANCH=master \ docker-compose -f docker-compose-verify.yml \ up --build --abort-on-container-exit --exit-code-from pact_verifier
所有验证选项详见官方文档。
docker run --rm \ -e PACT_BROKER_BASE_URL \ -e PACT_BROKER_USERNAME \ -e PACT_BROKER_PASSWORD \ pactfoundation/pact-cli:latest \ pact-broker can-i-deploy \ --pacticipant docker-example-consumer \ --latest
所有选项详见官方文档。
docker run --rm \ -e PACT_BROKER_BASE_URL \ -e PACT_BROKER_USERNAME \ -e PACT_BROKER_PASSWORD \ pactfoundation/pact-cli:latest \ pact-broker create-version-tag \ --pacticipant docker-example-consumer \ --version fake-git-sha-for-demo-$(date +%s) \ --tag prod
所有选项详见官方文档。
docker run -dit \ --rm \ --name pact-mock-service \ -p 1234:1234 \ -v ${HOST_PACT_DIRECTORY}:/tmp/pacts \ pactfoundation/pact-cli:latest \ mock-service \ -p 1234 \ --host 0.0.0.0 \ --pact-dir /tmp/pacts
-it参数用于支持通过ctl+c停止容器。使用docker stop时容器关闭可能较慢,这是已知问题。所有选项详见官方文档。
docker run --rm \ -v <宿主机证书文件路径>:/tmp/cacert.pem \ -e SSL_CERT_FILE=/tmp/cacert.pem \ pactfoundation/pact-cli:latest ...
也可设置SSL_CERT_DIR并挂载证书目录而非单个文件。
连接使用x509客户端证书认证的Pact Broker:
docker run --rm \ -v <宿主机客户端证书文件路径>:/tmp/clientcert.pem \ -v <宿主机客户端密钥文件路径>:/tmp/clientkey.pem \ -e X509_CLIENT_CERT_FILE=/tmp/clientcert.pem \ -e X509_CLIENT_KEY_FILE=/tmp/clientkey.pem \ pactfoundation/pact-cli:latest ...
为符合Docker一致性规则,容器提供sh访问(注意:容器内未安装bash):
$ docker run --rm pactfoundation/pact-cli sh -c 'ls' Gemfile Gemfile.lock bin entrypoint.sh example lib pact-cli.gemspec
$ docker run --rm pactfoundation/pact-cli ls Gemfile Gemfile.lock bin entrypoint.sh example lib pact-cli.gemspec
欢迎在GitHub上提交bug报告和拉取请求:[***]
本镜像作为开源软件发布,遵循MIT许可证条款。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429