Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

I tried to cut our 12-container stack down to 4. Two of my three conclusions were wrong.

说明与用途

作者通过删除非必要服务并将轻量级组件合并到 API 中,将 12 容器的 Docker 堆栈缩减为 4,减少了启动时间和资源使用,同时保持核心功能。

问题

A self-hosted project’s README lists 12 Docker services, making it intimidating for new users. The goal was to determine which services were essential and which could be removed without breaking functionality.

结果

By removing non-essential services and folding lightweight components into the API, the deployment footprint was reduced from 12 to 4 running containers, improving startup time and resource usage while maintaining core functionality.

工作流

  • 1. Analyze health checks to identify hard dependencies (Postgres and writable storage).
  • 2. Test removing services one by one, observing API behavior and readiness endpoints.
  • 3. Verify that local filesystem storage fails due to permission issues inside the image, confirming MinIO is required.
  • 4. Confirm that Milvus and etcd can be omitted because vector operations are lazy and degrade gracefully, but note that vector availability is not a hard requirement.
  • 5. Fold outbox-dispatcher into the API via an environment variable.
  • 6. Run the trimmed stack and confirm the UI is accessible and services function as expected.

证据

The storage adapter is built on fsspec, and the base URL resolves in this order: ...

来源

Milvus depends on etcd and minio, but the API starts without them because the connection is lazy.

来源

  • 记录日期: 2026-09-06T08:51:48.035Z