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

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

Описание и применение

Автор сократил стек из 12 контейнеров до 4, удалив ненужные сервисы и объединив легкие компоненты в API. Это уменьшило время запуска и потребление ресурсов, сохранив основную функциональность.

Задача

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