首页
/ Sorry-Cypress 全栈 Docker 部署方案深度解析

Sorry-Cypress 全栈 Docker 部署方案深度解析

2025-07-10 06:53:17作者:裘旻烁

项目概述

Sorry-Cypress 是一个开源的 Cypress 测试运行管理平台,提供了一套完整的解决方案来替代 Cypress 官方的 Dashboard 服务。通过 Docker Compose 可以快速部署整个系统,包括测试执行管理、结果存储和可视化展示等功能。

核心组件架构

该 Docker Compose 文件定义了四个关键服务组件:

  1. MongoDB 数据库服务:作为整个平台的数据存储后端
  2. Director 服务:负责测试执行的管理和调度
  3. API 服务:提供 GraphQL 接口供前端调用
  4. Dashboard 服务:可视化界面展示测试结果

详细配置解析

MongoDB 服务配置

mongo:
  image: mongo:4.4
  volumes:
    - ./data/data-mongo-cypress:/data/db
  • 使用 MongoDB 4.4 版本镜像
  • 通过卷映射将数据持久化到宿主机,确保容器重启后数据不丢失
  • 默认暴露 27017 端口供其他服务连接

Director 服务配置

Director 是测试执行的核心调度器,主要配置项包括:

director:
  image: agoldis/sorry-cypress-director:latest
  environment:
    DASHBOARD_URL: http://localhost:8080
    MONGODB_URI: 'mongodb://mongo:27017'
    MONGODB_DATABASE: 'sorry-cypress'
    EXECUTION_DRIVER: '../execution/mongo/driver'
    SCREENSHOTS_DRIVER: '../screenshots/s3.driver'
    AWS_ACCESS_KEY_ID: 'key'
    AWS_SECRET_ACCESS_KEY: 'secret'
    S3_BUCKET: sorry-cypress
  ports:
    - 1234:1234

关键环境变量说明:

  • DASHBOARD_URL:Dashboard 服务的访问地址
  • SCREENSHOTS_DRIVER:配置使用 S3 存储测试截图
  • AWS 相关配置:用于连接 S3 存储服务(需替换为实际值)
  • 暴露 1234 端口用于接收测试结果

API 服务配置

API 服务提供数据访问接口:

api:
  image: agoldis/sorry-cypress-api:latest
  environment:
    MONGODB_URI: 'mongodb://mongo:27017'
    MONGODB_DATABASE: 'sorry-cypress'
    APOLLO_PLAYGROUND: 'false'
  ports:
    - 4000:4000
  • 使用 GraphQL 实现 API
  • 默认禁用 Apollo Playground 界面(生产环境建议)
  • 暴露 4000 端口供前端调用

Dashboard 服务配置

可视化界面服务:

dashboard:
  image: agoldis/sorry-cypress-dashboard:latest
  environment:
    GRAPHQL_SCHEMA_URL: http://localhost:4000
    PORT: 8080
  ports:
    - 8080:8080
  • 连接 API 服务的 GraphQL 端点
  • 使用 8080 端口提供 Web 界面

部署实践建议

  1. 数据持久化:确保 MongoDB 的卷映射配置正确,避免测试数据丢失
  2. 安全配置
    • 生产环境应替换默认的 AWS 凭证
    • 考虑添加网络隔离和安全组规则
  3. 性能调优
    • 可根据测试规模调整 MongoDB 的资源限制
    • 对于大规模使用,建议将 S3 配置为私有存储桶
  4. 高可用方案
    • 可考虑将 MongoDB 部署为副本集
    • 对关键服务配置健康检查和重启策略

常见问题排查

  1. 服务启动顺序问题:确保 MongoDB 完全启动后再启动其他服务
  2. 网络连接问题:检查容器间网络通信是否正常
  3. 存储权限问题:确保宿主机对数据目录有正确写入权限
  4. S3 配置问题:验证 AWS 凭证和存储桶权限设置

扩展配置思路

对于进阶用户,可以考虑以下扩展配置:

  1. 添加 Nginx 反向代理和 HTTPS 支持
  2. 集成监控系统(如 Prometheus + Grafana)
  3. 配置日志收集和分析系统
  4. 实现自动备份方案

通过这套 Docker Compose 配置,用户可以快速搭建完整的 Sorry-Cypress 测试管理平台,为 Cypress 测试提供强大的执行管理和结果分析能力。