ADR-002: Динамическая инъекция зависимостей (Just-In-Time Dependency Injection)
Контекст
Создание отдельного Docker-образа под каждую комбинацию "Модель + Метрика" приведет к комбинаторному взрыву количества образов и сложности их поддержки.
Решение
Использовать стратегию базовых образов с динамической доустановкой пакетов.
- Поддерживается небольшое количество "толстых" базовых образов (Base GPU, Base CPU).
- Специфичные для конкретной задачи или модели пакеты (драйверы, метрики) устанавливаются "на лету" при старте контейнера (через
uv pip installилиpip).
Последствия
- Плюсы: Гибкость. Минимальное количество поддерживаемых Docker-образов.
- Минусы: Увеличение времени старта задачи (Cold Start) на время установки пакетов. Требуется доступ к PyPI (или локальному зеркалу) из контейнера.