Перейти к основному содержимому

ADR-002: Динамическая инъекция зависимостей (Just-In-Time Dependency Injection)

Контекст

Создание отдельного Docker-образа под каждую комбинацию "Модель + Метрика" приведет к комбинаторному взрыву количества образов и сложности их поддержки.

Решение

Использовать стратегию базовых образов с динамической доустановкой пакетов.

  • Поддерживается небольшое количество "толстых" базовых образов (Base GPU, Base CPU).
  • Специфичные для конкретной задачи или модели пакеты (драйверы, метрики) устанавливаются "на лету" при старте контейнера (через uv pip install или pip).

Последствия

  • Плюсы: Гибкость. Минимальное количество поддерживаемых Docker-образов.
  • Минусы: Увеличение времени старта задачи (Cold Start) на время установки пакетов. Требуется доступ к PyPI (или локальному зеркалу) из контейнера.