Metadata-Version: 2.4
Name: compose-generator
Version: 0.1.0
Summary: Проект представляет собой генератор docker-compose.yml файла на основе настроек приложения
Author: pasha_danilevich
Author-email: danilevitch.pasha@yandex.ru
Requires-Python: >=3.10
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: pydantic-settings (>=2.11.0,<3.0.0)
Description-Content-Type: text/markdown

Этот проект представляет собой **генератор docker-compose.yml файла** на основе настроек приложения. Вот подробное описание:

## Основное назначение
Автоматическое создание `docker-compose.yml` файла с подстановкой всех переменных окружения из конфигурации приложения.

## Ключевые компоненты

### 1. `ConfigurationComponent`
- **Назначение**: Преобразует объекты конфигурации в строки переменных окружения
- **Функциональность**:
  - Извлекает префикс переменных окружения из конфигурации Pydantic
  - Генерирует строки в формате `VARIABLE_NAME: ${VARIABLE_NAME}`
  - Добавляет комментарии с названиями классов конфигурации

### 2. `Generator`
- **Назначение**: Основной класс для генерации docker-compose файла
- **Функциональность**:
  - Заменяет плейсхолдеры `[ENV]` и `[VERSION]` в шаблоне
  - Сохраняет форматирование и отступы
  - Записывает результат в файл `docker-compose.yml`

## Особенности реализации

### Шаблон Docker Compose
Создает сервисы:
- **api** - веб-сервер с пробросом портов
- **bg** - фоновый сервис
- Оба используют общую сеть `common-net`

### Автоматизация конфигурации
- Извлекает все переменные из объектов `BaseSettings`
- Сохраняет структуру и префиксы конфигурации
- Генерирует полный список переменных окружения

### Преимущества подхода
1. **Синхронизация** - версии и настройки всегда актуальны
2. **Безопасность** - не хранит чувствительные данные в репозитории
3. **Автоматизация** - исключает ручное редактирование
4. **Масштабируемость** - легко добавлять новые сервисы и настройки


Проект полезен для CI/CD процессов, где требуется автоматическое создание docker-compose файлов с актуальными настройками окружения.
