首页
/ Sorry-Cypress 项目 Docker Compose 构建配置详解

Sorry-Cypress 项目 Docker Compose 构建配置详解

2025-07-10 06:50:43作者:钟日瑜

概述

本文将深入解析 sorry-cypress 项目的 docker-compose.build.yml 配置文件,帮助开发者理解其架构设计和部署方式。sorry-cypress 是一个开源的 Cypress 测试运行管理平台,通过 Docker Compose 可以快速搭建完整的服务环境。

核心服务架构

该配置文件定义了三个核心服务组件和一个数据库服务,共同构成了 sorry-cypress 的完整运行环境:

  1. MongoDB 服务:作为数据存储层
  2. Director 服务:测试执行管理核心
  3. API 服务:提供 GraphQL 接口
  4. Dashboard 服务:可视化界面

服务配置详解

1. MongoDB 服务

mongo:
  image: mongo:4.4
  • 使用官方 MongoDB 4.4 镜像
  • 作为整个平台的数据存储后端
  • 默认暴露标准 MongoDB 端口(27017)

2. Director 服务

Director 是 sorry-cypress 的核心组件,负责测试执行的管理和调度:

director:
  build:
    dockerfile: packages/director/Dockerfile
    context: .
  image: agoldis/sorry-cypress-director:${VERSION:-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'
    GITLAB_JOB_RETRIES: 'false'
    AWS_ACCESS_KEY_ID: 'key'
    AWS_SECRET_ACCESS_KEY: 'secret'
    S3_BUCKET: sorry-cypress
    PROBE_LOGGER: "false"
  ports:
    - 1234:1234
  depends_on:
    - mongo

关键配置说明:

  • 构建基于项目内的 Dockerfile
  • 使用环境变量配置 MongoDB 连接
  • 支持 S3 存储测试截图(需配置 AWS 凭证)
  • 暴露 1234 端口供外部访问
  • 依赖 MongoDB 服务启动

3. API 服务

API 服务提供 GraphQL 接口供 Dashboard 和其他客户端使用:

api:
  build:
    dockerfile: packages/api/Dockerfile
    context: .
  image: agoldis/sorry-cypress-api:${VERSION:-latest}
  environment:
    MONGODB_URI: 'mongodb://mongo:27017'
    MONGODB_DATABASE: 'sorry-cypress'
    APOLLO_PLAYGROUND: 'false'
  ports:
    - 4000:4000
  depends_on:
    - mongo

关键配置说明:

  • 构建基于项目内的 Dockerfile
  • 配置 MongoDB 连接
  • 禁用 Apollo Playground(生产环境建议)
  • 暴露 4000 端口提供 API 服务
  • 依赖 MongoDB 服务启动

4. Dashboard 服务

Dashboard 是 sorry-cypress 的 Web 管理界面:

dashboard:
  build:
    dockerfile: packages/dashboard/Dockerfile
    context: .
  image: agoldis/sorry-cypress-dashboard:${VERSION:-latest}
  environment:
    GRAPHQL_SCHEMA_URL: http://localhost:4000
    GRAPHQL_CLIENT_CREDENTIALS: ''
    PORT: 8080
    CI_URL: ''
  ports:
    - 8080:8080
  depends_on:
    - api

关键配置说明:

  • 构建基于项目内的 Dockerfile
  • 配置 GraphQL API 端点(指向 API 服务)
  • 设置服务端口为 8080
  • 暴露 8080 端口供 Web 访问
  • 依赖 API 服务启动

部署建议

  1. 生产环境调整

    • 应为 MongoDB 配置持久化存储
    • 建议使用外部 S3 服务而非本地存储
    • 配置适当的 AWS 凭证而非示例中的占位值
    • 考虑添加 HTTPS 支持
  2. 版本控制

    • 通过 VERSION 环境变量控制镜像版本
    • 建议在生产环境指定具体版本而非 latest
  3. 网络配置

    • 可根据需要调整端口映射
    • 考虑添加自定义网络提高安全性

总结

通过 docker-compose.build.yml 文件,sorry-cypress 项目提供了一种标准化的部署方式,将复杂的测试管理平台拆分为多个松耦合的服务组件。理解这个配置文件对于定制化部署和故障排查都非常重要。开发者可以根据实际需求调整各项配置参数,构建适合自己测试环境的管理平台。