Files
compose-anything/README.zh.md
2025-09-21 16:40:26 +08:00

2.4 KiB
Raw Blame History

Compose Anything

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

已经支持的服务

服务 版本
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.