
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://github.com/agoldis/sorry-cypress/workflows/Update%20Dockerhub%20Images/badge.svg?event=push
director 服务api 服务dashboard 服务<cypress-root>/packages/server/config/app.yml 中设置 api_url 为 https://sorry-cypress-demo-director.herokuapp.com/cypress run --parallel --record --key xxx --ci-build-id <buildId> 实例!并行运行 Cypress 测试演示
!Web 仪表盘原型
访问 [***] 查看 Web 仪表盘 alpha 版本的实际效果。
此演示基于免费 Heroku 实例,首次访问时可能需要一分钟启动。
您可以重新配置 Cypress,将 api_url 设置为 "https://sorry-cypress-demo-director.herokuapp.com/",运行测试后即可在仪表盘中查看结果。
也可参考https://github.com/agoldis/sorry-cypress/tree/master/example%E4%BA%86%E8%A7%A3%E5%B9%B6%E8%A1%8C%E5%8C%96%E7%9A%84%E8%AF%A6%E7%BB%86%E7%94%A8%E6%B3%95%E3%80%82
docker-compose -f docker-compose.full.yml up这将在本地启动所有 3 个服务,
重新配置 Cypress,将 api_url 设置为 "http://localhost:1234/",
运行测试 cypress run --parallel --record --key xxx --ci-build-id <buildId>,结果将显示在仪表盘中。这些 Cypress 测试将并行运行,无需连接官方仪表盘。
如需上传失败测试截图,需https://github.com/agoldis/sorry-cypress/wiki/S3-screenshot-bucket-setup-instructions%E3%80%82%E8%AE%BE%E7%BD%AE S3 存储桶后,替换
docker-compose.full.yml中的凭据。
每个包均包含 Dockerfile,可用于构建自定义镜像。
预构建 Docker 镜像可在 https://hub.docker.com/u/agoldis 获取。
Docker 镜像标签对应 Git 标签,latest 标签对应 master 分支。
参考 docker-compose.full.yml 获取配置示例。
已迁移至 https://github.com/agoldis/sorry-cypress/wiki/Heroku-Tutorial
🎉 使用 AWS CloudFormation 模板,仅需 5 分钟即可在 AWS 上部署 sorry-cypress,获得完整功能版本,包括:
详见 https://github.com/agoldis/sorry-cypress/wiki/AWS-Tutorial%EF%BC%8C%E6%88%96%E7%9B%B4%E6%8E%A5%E7%82%B9%E5%87%BB%E4%B8%8B%E6%96%B9%E6%8C%89%E9%92%AE 👇🏻
director 服务director 服务负责:
当在 CI 环境的多台机器上启动 Cypress 时,每台机器首先联系仪表盘获取下一个要运行的测试。仪表盘协调不同机器的请求并为每台机器分配测试。这正是 director 服务的功能 👆
启动服务
shcd packages/director npm install npm run build npm run start # ... Initializing "in-memory" execution driver... Initializing "dummy" screenshots driver... Listening on 1234...
默认情况下,服务在端口 1234 启动,使用内存执行驱动和 dummy 快照驱动。
https://sorry-cypress.herokuapp.com 上运行的就是这种无状态执行模式,仅并行化测试,不持久化测试结果,也不上传失败测试的截图。
配置
服务使用 dotenv 包 - 要修改默认配置,在服务根目录创建 .env 文件设置环境变量:
sh$ pwd /Users/agoldis/sorry-cypress/packages/director $ cat .env PORT=1234 # DASHBOARD_URL 是 Cypress 客户端显示的"运行 URL" DASHBOARD_URL="https://sorry-cypress.herokuapp.com" # 执行驱动详情见下文 EXECUTION_DRIVER="../execution/in-memory" # 截图驱动详情见下文 SCREENSHOTS_DRIVER="../screenshots/dummy.driver" # 记录密钥白名单详情见下文 ALLOWED_KEYS="my_secret_key,my_another_secret_key"
驱动
director 使用"驱动"定义其不同功能方面。
执行驱动
...用于驱动执行流程。
已实现 2 种"执行驱动":
无状态(in-memory)
在内存中保存运行状态。重启服务会清除所有数据。
这是最简单的实现方式。适用于仅需并行运行测试,无需存储测试结果的场景。
MongoDB 持久化
运行状态(测试运行和结果)持久化到 MongoDB,可通过查询在仪表盘中显示。
要启用此驱动,设置环境变量:
EXECUTION_DRIVER="../execution/mongo/driver" MONGODB_URI="monodgb://your-DB-URI" MONGODB_DATABASE="your-DB-name"
使用 MongoDB 驱动后,可通过 api 和 dashboard 服务查看运行结果。
快照驱动
...用于保存快照和测试视频。为客户端(Cypress 运行器)提供资产(视频和截图)的上传 URL。
Dummy
默认驱动,不执行任何操作 - 快照不会保存。
设置环境变量定义截图驱动:
SCREENSHOTS_DRIVER="../screenshots/dummy.driver"
S3 驱动
生成 S3 存储桶的上传 URL。相应设置环境变量:
SCREENSHOTS_DRIVER="../screenshots/s3.driver" S3_BUCKET="your_bucket_name" S3_REGION="us-east-1"
确保环境中存在具有调用 s3.getSignedUrl 权限的 AWS 凭据。
参考 wiki 页面了解https://github.com/agoldis/sorry-cypress/wiki/S3-screenshot-bucket-setup-instructions%E3%80%82
记录密钥白名单
设置 ALLOWED_KEYS 变量可定义逗号分隔的记录密钥列表(通过 --key 选项提供给 Cypress 运行器),director 服务仅接受这些密钥。当 Cypress 在外部 CI 服务器上运行且需将 director 暴露到互联网时,此功能非常有用。
变量为空或未设置时,允许所有记录密钥。
ALLOWED_KEYS="my_secret_key"
api 服务...是一个简单的 GraphQL 服务,允许查询 MongoDB 中持久化的数据。
设置定义 MongoDB 连接详情的环境变量:
MONGODB_URI='mongodb://mongo:27017' MONGODB_DATABASE='sorry-cypress'
dashboard 服务...是基于 ReactJS 实现的 Web 仪表盘,目前处于 alpha 阶段,功能较基础 - 可浏览测试详情、失败记录和查看截图。
生产模式下需提供环境变量 GRAPHQL_SCHEMA_URL - GraphQL 客户端将使用该 URL 下载模式。
设置定义获取模式的 URL 的环境变量:
GRAPHQL_SCHEMA_URL=https://sorry-cypress-demo-api.herokuapp.com
可在 [***] 探索当前可用功能。
项目使用 yarn workspaces,在根目录运行 yarn 引导所有依赖。
在开发模式下运行每个包:yarn dev。
建议使用 docker-compose 运行后端服务(director 和 api),在主机上运行 dashboard。
项目使用 docker-compose 便捷地在容器中运行后端服务。
从项目根目录运行 docker-compose build
运行 docker-compose up 启动服务。
上述命令将创建 3 个服务:
27017 上的 MongoDB 实例1234 上的 director 服务4000 上的 api 服务可通过 docker-compose.yml 文件中定义的环境变量修改配置。
--ci-build-id 和其他 CLI 参数director 基于参数创建或获取现有 run,返回随机生成的 machineId 和分配的 runId
每个 Cypress 客户端请求先前返回的 runId 的下一个可用任务
服务查看测试规范列表并返回下一个可用测试
官方 Cypress 仪表盘实现了不同的"智能"策略来选择下一个测试
我开发此项目是因为:
是的,Cypress 是https://github.com/cypress-io/cypress/blob/develop/LICENSE%E3%80%82
是的。
MIT
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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