Files
compose-anything/README.zh.md
2025-12-15 09:58:42 +08:00

16 KiB
Raw Permalink Blame History

Compose Anything

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

已经支持的服务

服务 版本
Apache APISIX 3.13.0
Apache Cassandra 5.0.2
Apache Flink 1.20.0
Apache HBase 2.6
Apache HTTP Server 2.4.62
Apache Kafka 7.8.0
Apache Pulsar 4.0.7
Apache RocketMQ 5.3.1
Bifrost Gateway 1.3.48
Bolt.diy latest
Budibase 3.23.0
Bytebot edge
Clash 1.18.0
ClickHouse 24.11.1
Conductor latest
Dify 0.18.2
DNSMasq 2.91
Dockge 1
Docker Registry 3.0.0
DuckDB v1.1.3
Easy Dataset 1.5.1
Elasticsearch 8.16.1
etcd 3.6.0
Firecrawl latest
frpc 0.64.0
frps 0.64.0
Gitea Runner 0.2.13
Gitea 1.24.6
GitLab Runner 17.10.1
GitLab 17.10.4-ce.0
GPUStack v0.5.3
Grafana 12.1.1
Halo 2.21.9
Harbor v2.12.0
HashiCorp Consul 1.20.3
IOPaint latest
Jenkins 2.486-lts
JODConverter latest
Kestra latest-full
Kibana 8.16.1
Kodbox 1.62
Kong 3.8.0
Langflow latest
Langfuse 3.115.0
LibreOffice latest
LiteLLM main-stable
Logstash 8.16.1
MariaDB Galera 集群 11.7.2
Milvus Standalone Embed 2.6.2
Milvus Standalone 2.6.2
Minecraft Bedrock Server latest
MinerU SGLang 2.2.2
MinerU vLLM 2.6.4
MinIO RELEASE.2025-09-07T16-13-09Z
MLflow v2.20.2
MongoDB ReplicaSet Single 8.0.13
MongoDB ReplicaSet 8.0.13
MongoDB Standalone 8.0.13
MySQL 9.4.0
n8n 1.114.0
Nacos v3.1.0
NebulaGraph v3.8.0
NexaSDK v0.2.62
Neo4j 5.27.4
Nginx 1.29.1
Node Exporter v1.8.2
OceanBase 4.3.3
Odoo 19.0
Ollama 0.12.0
Open WebUI main
Phoenix (Arize) 12.19.0
Pingora Proxy Manager v1.0.3
Open WebUI Rust latest
OpenCoze See Docs
OpenCut latest
OpenList latest
OpenSearch 2.19.0
PocketBase 0.30.0
Portainer 2.27.3-alpine
Portkey AI Gateway latest
PostgreSQL 17.6
Prometheus 3.5.0
PyTorch 2.6.0
Qdrant 1.15.4
RabbitMQ 4.1.4
Ray 2.42.1
Redpanda v24.3.1
Redis Cluster 8.2.1
Redis 8.2.1
Renovate 42.52.5-full
Restate Cluster 1.5.3
Restate 1.5.3
SearXNG 2025.1.20-1ce14ef99
Stable Diffusion WebUI latest
Stirling-PDF latest
Temporal 1.24.2
TiDB v8.5.0
TiKV v8.5.0
Trigger.dev v4.2.0
Valkey Cluster 8.0
Valkey 8.0
Verdaccio 6.1.2
vLLM v0.8.0
Windmill main
ZooKeeper 3.9.3

MCP 服务器

服务 版本
API Gateway latest
ArXiv MCP Server latest
Basic Memory latest
ClickHouse latest
Docker latest
Dockerhub latest
E2B latest
ElevenLabs latest
Fetch latest
Firecrawl latest
Filesystem latest
Grafana latest
Markdownify latest
Markitdown latest
Memory latest
MongoDB latest
Neo4j Cypher latest
Neo4j Memory latest
Notion latest
OpenAPI Schema latest
OpenAPI latest
OpenWeather latest
Paper Search latest
Playwright latest
Redis MCP latest
Rust Filesystem latest
Sequential Thinking latest
SQLite latest
Tavily latest
Text to GraphQL latest
Time latest
Wolfram Alpha latest
YouTube Transcript latest

规范

  1. 开箱即用
    • 配置应该是开箱即用的,无需额外步骤即可启动(最多提供 .env 文件)。
  2. 命令简单
    • 每个项目提供单一的 docker-compose.yaml 文件;
    • 命令复杂度不应超过 docker compose up -d;若需要额外流程,请提供 Makefile
    • 若服务需要初始化,优先使用 healthcheckdepends_oncondition: service_healthy 组织启动顺序。
  3. 版本稳定
    • 固定到“最新稳定版”而非 latest
    • 通过环境变量暴露镜像版本(如 FOO_VERSION)。
  4. 配置约定
    • 尽量通过环境变量配置,而非复杂的命令行参数;
    • 敏感信息通过环境变量或挂载文件传递,不要硬编码;
    • 提供合理默认值,实现零配置可启动;
    • 必须提供带注释的 .env.example
    • 环境变量命名建议:全大写、下划线分隔,按服务加前缀(如 POSTGRES_*),端口覆写统一用 *_PORT_OVERRIDE
  5. Profiles 规范
    • 对“可选组件/依赖”使用 Profiles
    • 推荐命名:gpuGPU 加速)、metrics(可观测性/导出器)、dev(开发特性)。
  6. 跨平台与架构
    • 在镜像支持前提下,确保 Debian 12+/Ubuntu 22.04+、Windows 10+、macOS 12+ 可用;
    • 支持 x86-64 与 ARM64 架构尽可能一致;
    • 避免依赖仅在 Linux 主机存在的主机路径(例如 /etc/localtime/etc/timezone),统一使用 TZ 环境变量传递时区。
  7. 卷与挂载
    • 配置文件优先使用相对路径,增强跨平台兼容;
    • 数据目录优先使用“命名卷”,避免主机路径权限/兼容性问题;
    • 如需主机路径,建议提供顶层目录变量(如 DATA_DIR)。
  8. 资源与日志
    • 必须限制 CPU/内存,防止资源打爆;
    • GPU 服务默认单卡:可使用 deploy.resources.reservations.devicesCompose 支持为 device_requests 映射)或 gpus
    • 限制日志大小(json-filemax-size/max-file)。
  9. 健康检查
    • 每个服务应提供 healthcheck,包括合适的 intervaltimeoutretriesstart_period
    • 依赖链通过 depends_on.condition: service_healthy 组织。
  10. 安全基线(能用则用)
    • 以非 root 运行(提供 PUID/PGID 或直接 user: "1000:1000"
    • 只读根文件系统(read_only: true),必要目录使用 tmpfs/可写挂载;
    • 最小权限:cap_drop: ["ALL"],按需再 cap_add
    • 避免使用 container_name(影响可扩缩与复用网络别名);
    • 如需暴露 Docker 套接字等高危挂载,必须在文档中明确“风险与替代方案”。
  11. 文档与可发现性
    • 提供清晰文档与示例(含初始化与管理员账号说明、必要的安全/许可说明);
    • 提供对 LLM 友好的结构化文档;
    • 在 README 中标注主要环境变量与默认端口,并链接到 README.md / README.zh.md

开源协议

MIT License.