ENV и параметры запуска
Один образ для разных настроек: приложение читает окружение, Docker передаёт значения.
После урока вы сможете
- Задавать значение по умолчанию через ENV
- Переопределять его через docker run -e
- Читать переменные окружения в Python
Настройка не обязана быть строкой в коде
Допустим, на тестовом стенде API должно отвечать одним приветствием, а на демонстрационном — другим. Создавать отдельную ветку кода ради текста неудобно: приходится заново сопоставлять, какие изменения действительно относятся к функциональности. Вынесем сообщение в настройку MESSAGE.
import os
message = os.getenv("MESSAGE", "Hello, Docker!")
os.getenv читает окружение процесса. Если ключ отсутствует, Python использует второй аргумент. Здесь это резервное значение приложения. Переменные окружения — строки: значение "8000" при необходимости нужно преобразовать в число, а "false" не становится автоматически логическим False.
Простое добавление переменной в Dockerfile ничего не изменит, если приложение продолжает возвращать жёстко записанную строку. Нужны обе части: доставка настройки процессу и её чтение в точке формирования ответа.