Skip to content

[r2cn] Docker Compose 一键启动 Mega / Orion Demo 环境 #1792

@benjamin-747

Description

@benjamin-747

[任务] Docker Compose 一键启动 Mega / Orion Demo 环境

[任务分值] 35 分

[背景描述]

目前 Mega、Orion 相关组件在本地启动和联调时存在以下问题:

目前 Mega 与 Orion 相关组件(Mega 服务、UI、Orion Server、Orion 构建 Client)以及其依赖服务(如 PostgreSQL、Redis、RustFS)需要分别启动和配置:
为了提升 可演示性、可复现性和上手效率,需要提供一个 基于 Docker Compose 的一键启动方案,能够在本地快速拉起完整 Demo 环境。

[需求描述]

  1. 提供基于 Docker Compose 的一键启动能力
  • 提供 docker-compose.yml(或 compose v2):
  • 覆盖以下服务:
    • Mega(Rust)
    • Mega UI
    • Orion Server(Rust)
    • Orion Build Client
    • Campsite(Ruby)
    • PostgreSQL
    • Redis
    • RustFS
  1. 服务依赖与启动顺序管理

目标:

启动过程稳定,不依赖人工干预。

要求:

  • 明确服务依赖关系,例如:
    • Mega / Orion / Campsite 依赖 PG、Mysql,Redis,RustFS
    • Orion Build Client 依赖 Orion Server
  • 使用:
    • depends_on
    • healthcheck
  • 避免:
    • 服务启动后立即失败
    • 竞态条件导致 Demo 不稳定
  1. 环境变量与配置统一管理
    要求:
  • 提供 .env.example 或内嵌默认配置:

    • 数据库连接
    • Redis URL
    • RustFS endpoint
    • 服务间访问地址
  • 配置以 Demo 为目标:

  • 不要求生产级安全配置

  • 明确标注 Demo-only

  1. Demo 文档与使用说明

目标:

非项目核心开发者也能独立完成演示。

文档至少包含:

  • 前置条件(Docker / Docker Compose 版本)
  • 启动命令
  • 常见问题(端口冲突、首次启动慢等)
  • Demo 流程简介:
    • 访问 UI
    • 触发 Orion 构建
    • 查看构建结果

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma genedna@gmail.com
  2. Tianxing Ye yetianxing2014@gmail.com

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions