首页
/ Sorry-Cypress 基于 MinIO 的 Docker 部署指南

Sorry-Cypress 基于 MinIO 的 Docker 部署指南

2025-07-10 06:54:14作者:钟日瑜

项目概述

Sorry-Cypress 是一个开源的 Cypress 测试运行管理平台,它提供了完整的测试执行、结果存储和可视化展示功能。本文重点介绍如何使用 Docker Compose 结合 MinIO 对象存储服务来部署 Sorry-Cypress 的完整环境。

核心组件介绍

该部署方案包含以下关键服务组件:

  1. MongoDB:作为主要数据存储,保存测试运行记录和元数据
  2. Director:负责协调测试执行的调度服务
  3. API:提供 GraphQL 接口,处理前端请求
  4. Dashboard:可视化界面,展示测试结果和统计数据
  5. MinIO:对象存储服务,用于保存测试过程中生成的截图和视频

部署前准备

在开始部署前,请确保:

  • 已安装 Docker 和 Docker Compose
  • 服务器有足够的磁盘空间(建议至少 10GB)
  • 了解基本的 Docker 概念和操作

配置文件详解

MongoDB 配置

mongo:
  image: mongo:4.4
  environment:
    MONGO_INITDB_ROOT_USERNAME: '<mongo-user>'
    MONGO_INITDB_ROOT_PASSWORD: '<mongo-pass>'
  volumes:
    - ./data/data-mongo-cypress:/data/db
  ports:
    - 27017:27017

这部分配置了 MongoDB 数据库服务,关键点包括:

  • 使用官方 MongoDB 4.4 镜像
  • 通过环境变量设置管理员凭据
  • 将数据持久化到宿主机目录
  • 暴露标准 MongoDB 端口

Director 服务配置

Director 是 Sorry-Cypress 的核心组件,负责测试执行的管理:

director:
  image: agoldis/sorry-cypress-director:latest
  environment:
    DASHBOARD_URL: http://localhost:8080
    EXECUTION_DRIVER: '../execution/mongo/driver'
    MONGODB_URI: 'mongodb://<mongo-user>:<mongo-pass>@mongo:27017'
    SCREENSHOTS_DRIVER: '../screenshots/minio.driver'
    MINIO_ACCESS_KEY: '<minio-user>'
    MINIO_SECRET_KEY: '<minio-pass>'
    MINIO_ENDPOINT: '<minio-ip-address>'
    MINIO_BUCKET: sorry-cypress
  ports:
    - 1234:1234
    - 9000:9000
    - 9090:9090

重要配置项说明:

  • EXECUTION_DRIVER:指定使用 MongoDB 作为执行记录存储
  • SCREENSHOTS_DRIVER:配置使用 MinIO 存储截图
  • 端口映射包括 Director 服务端口(1234)和 MinIO 服务端口(9000, 9090)

MinIO 存储服务

MinIO 配置分为两部分:存储服务本身和初始化脚本:

storage:
  image: minio/minio
  network_mode: service:director
  environment:
    MINIO_ROOT_USER: '<minio-user>'
    MINIO_ROOT_PASSWORD: '<minio-pass>'
  volumes:
    - ./data/data-minio-cypress:/data
  command: minio server --console-address ":9090" /data

createbuckets:
  image: minio/mc
  network_mode: service:director
  depends_on:
    - storage
  entrypoint: >
    /bin/sh -c "
    sleep 3;
    /usr/bin/mc config host add myminio http://localhost:9000 <minio-user> <minio-pass>;
    /usr/bin/mc mb myminio/sorry-cypress;
    /usr/bin/mc anonymous set download myminio/sorry-cypress;
    /usr/bin/mc anonymous set public myminio/sorry-cypress;
    "

关键点:

  • 使用 network_mode: service:director 使 MinIO 共享 Director 的网络栈
  • 初始化脚本会自动创建存储桶并设置公开访问权限
  • 数据持久化到宿主机目录

部署步骤

  1. 复制提供的 docker-compose.minio.yml 文件
  2. 替换所有占位符(<mongo-user>, <mongo-pass>, <minio-ip-address> 等)
  3. 运行命令:docker-compose -f docker-compose.minio.yml up -d
  4. 等待所有服务启动完成(约1-2分钟)

访问服务

部署完成后,可以通过以下地址访问各服务:

  • Dashboard: http://<your-server-ip>:8080
  • MinIO 控制台: http://<your-server-ip>:9090
  • API: http://<your-server-ip>:4000

常见问题处理

  1. 端口冲突:确保 8080、9000、9090 和 4000 端口未被占用
  2. 初始化失败:检查 MinIO 初始化脚本中的凭据是否正确
  3. 存储权限问题:确保宿主机上的 data 目录有正确的写入权限

最佳实践建议

  1. 生产环境应考虑:
    • 使用 HTTPS 加密通信
    • 配置更严格的安全策略
    • 设置定期备份
  2. 监控 MinIO 存储空间使用情况
  3. 定期清理旧的测试数据以节省空间

通过本文介绍的配置,您可以快速搭建一个功能完整的 Sorry-Cypress 测试管理平台,利用 MinIO 提供可靠的测试附件存储能力。