removespread / Docker
DOCKER · МОДУЛЬ 03 · УРОК 1

ENV и параметры запуска

20 мин

Один образ для разных настроек: приложение читает окружение, Docker передаёт значения.

Настройка приложения~20 мин
После урока вы сможете
  • Задавать значение по умолчанию через ENV
  • Переопределять его через docker run -e
  • Читать переменные окружения в Python

Настройка не обязана быть строкой в коде

Допустим, на тестовом стенде API должно отвечать одним приветствием, а на демонстрационном — другим. Создавать отдельную ветку кода ради текста неудобно: приходится заново сопоставлять, какие изменения действительно относятся к функциональности. Вынесем сообщение в настройку MESSAGE.

import os

message = os.getenv("MESSAGE", "Hello, Docker!")

os.getenv читает окружение процесса. Если ключ отсутствует, Python использует второй аргумент. Здесь это резервное значение приложения. Переменные окружения — строки: значение "8000" при необходимости нужно преобразовать в число, а "false" не становится автоматически логическим False.

Простое добавление переменной в Dockerfile ничего не изменит, если приложение продолжает возвращать жёстко записанную строку. Нужны обе части: доставка настройки процессу и её чтение в точке формирования ответа.

Шаг 1 из 5