Иерархия конфигурации¶
Несколько источников настроек действуют одновременно. Важно понимать, что перекрывает что, чтобы не искать параметр «не там».
Порядок силы (от сильного к слабому)¶
Параметры командной строки при одном запуске
↓
odpm.json и user_settings.json (файлы в каталоге проекта / в git)
↓ (в whitelist-строках: ${VAR} ← process env, затем project .env)
файл .env в каталоге проекта
↓
файл ~/.odpm/.env (общий профиль пользователя)
↓
переменные окружения оболочки (при создании .env без диалога)
↓
встроенные значения по умолчанию odpm
Один файл .env за раз¶
odpm читает либо .env в каталоге проекта, либо ~/.odpm/.env — не оба сразу. Если в каталоге проекта есть свой .env, глобальный файл не дополняет его: отсутствующий в проекте ключ не подтягивается из ~/.odpm/.env.
Исключение по времени: до полной инициализации для ранних проверок может читаться только project .env (см. язык сообщений).
Сгенерированные файлы¶
docker-compose.yml, .odpm/runtime/config.json, .odpm/database/last_run.json, корневой .dockerignore генерируются odpm из описания проекта и сценария. Их не следует считать местом «ручной правды» — см. сгенерированные файлы и состояние PostgreSQL.
Фиксация версий git¶
При работе с репозиториями: --no-git-update сильнее --update-lock, затем существующий lock-файл, затем конец ветки / дата nightly. Подробнее: deps.lock.json.