Files
compose-anything/README.zh.md

4.8 KiB
Raw Blame History

Compose Anything

Compose Anything 通过提供一组高质量的 Docker Compose 配置文件,帮助用户快速部署各种服务。这些配置约束了资源使用,可快速迁移到 K8S 等系统,并且易于理解和修改。

已经支持的服务

服务 版本
Bifrost Gateway 1.2.15
Clash 1.18.0
Docker Registry 3.0.0
frpc 0.64.0
frps 0.64.0
Gitea 1.24.6
Gitea Runner 0.2.12
GitLab 17.10.4-ce.0
GitLab Runner 17.10.1
IOPaint latest
Milvus Standalone 2.6.2
Milvus Standalone Embed 2.6.2
MinerU SGALNG 2.2.2
MinerU v2 2.5.3
MinIO RELEASE.2025-09-07T16-13-09Z
MongoDB ReplicaSet 8.0.13
MongoDB Standalone 8.0.13
MySQL 9.4.0
Ollama 0.12.0
Open WebUI main
OpenCut latest
PocketBase 0.30.0
PostgreSQL 17.6
Qdrant 1.15.4
RabbitMQ 4.1.4
Redis 8.2.1

规范

  1. 开箱即用,配置应该是开箱即用的,无需配置也能启动(最多提供 .env 文件);
  2. 命令简单
    • 每个项目提供单一的 docker-compose.yaml 文件;
    • 命令的复杂性避免超过 docker compose 命令,如果超过请提供 Makefile
    • 如果服务需要初始化,可借助 depends_on 模拟 Init 容器;
  3. 版本稳定
    • 提供一个最新稳定的镜像版本而不是 latest
    • 允许通过环境变量配置版本号;
  4. 充分可配置
    • 尽量通过环境变量配置,而不是通过复杂的命令行参数;
    • 环境变量,密码等敏感信息应通过环境变量或挂载文件传递,不要硬编码;
    • 提供合理默认值,尽量零配置能启动;
    • 尽可能提供 .env.example 文件并有注释,帮助用户快速上手;
    • 如果是非必要依赖,请使用 Profiles 配置;
  5. 跨平台,(在镜像支持的情况下)请确保主流平台都能正常启动;
    • 兼容标准是Debian 12+/Ubuntu 22.04+、Windows 10+、macOS 12+
    • 尽可能兼容不同的架构,如 x86-64、ARM64
  6. 小心处理挂载
    • 配置文件尽量使用相对路径挂载,确保跨平台兼容性;
    • 数据目录尽量使用命名卷,避免主机路径挂载带来的权限和兼容性问题;
  7. 默认资源限制
    • 对每个服务限制 CPU 和内存使用,防止意外的资源耗尽;
    • 限制日志的大小,防止日志文件占满磁盘;
    • 对于 GPU 服务默认启用单卡;
  8. 文档全面
    • 提供良好的文档和示例,帮助用户快速上手和理解配置;
    • 特别要提供如何初始化账户,管理员账户等说明;
    • 必要时,提供安全和许可说明;
    • 提供 LLM 友好的文档,方便用户使用 LLM 进行查询和理解;
  9. 最佳实践,遵循其他可能的最佳实践,确保安全性、性能和可维护性。

开源协议

MIT License.