Sorry-Cypress 基于 MinIO 的 Docker 部署指南
2025-07-10 06:54:14作者:钟日瑜
项目概述
Sorry-Cypress 是一个开源的 Cypress 测试运行管理平台,它提供了完整的测试执行、结果存储和可视化展示功能。本文重点介绍如何使用 Docker Compose 结合 MinIO 对象存储服务来部署 Sorry-Cypress 的完整环境。
核心组件介绍
该部署方案包含以下关键服务组件:
- MongoDB:作为主要数据存储,保存测试运行记录和元数据
- Director:负责协调测试执行的调度服务
- API:提供 GraphQL 接口,处理前端请求
- Dashboard:可视化界面,展示测试结果和统计数据
- 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 的网络栈 - 初始化脚本会自动创建存储桶并设置公开访问权限
- 数据持久化到宿主机目录
部署步骤
- 复制提供的 docker-compose.minio.yml 文件
- 替换所有占位符(
<mongo-user>
,<mongo-pass>
,<minio-ip-address>
等) - 运行命令:
docker-compose -f docker-compose.minio.yml up -d
- 等待所有服务启动完成(约1-2分钟)
访问服务
部署完成后,可以通过以下地址访问各服务:
- Dashboard:
http://<your-server-ip>:8080
- MinIO 控制台:
http://<your-server-ip>:9090
- API:
http://<your-server-ip>:4000
常见问题处理
- 端口冲突:确保 8080、9000、9090 和 4000 端口未被占用
- 初始化失败:检查 MinIO 初始化脚本中的凭据是否正确
- 存储权限问题:确保宿主机上的 data 目录有正确的写入权限
最佳实践建议
- 生产环境应考虑:
- 使用 HTTPS 加密通信
- 配置更严格的安全策略
- 设置定期备份
- 监控 MinIO 存储空间使用情况
- 定期清理旧的测试数据以节省空间
通过本文介绍的配置,您可以快速搭建一个功能完整的 Sorry-Cypress 测试管理平台,利用 MinIO 提供可靠的测试附件存储能力。