Шаблоны в контейнере nginx
Настраивая nginx под один из проектов, я столкнулся с необходимостью использовать переменные окружения в его конфигурации. Оказалось, что Docker-образ из коробки поддерживает такую возможность: создание конфигурации с подстановкой переменных окружения посредством шаблонов.
Работает это очень просто: нужно положить файл с нужным расширением в правильную папку внутри контейнера с nginx, и тогда магия сработает. По шагам:
- Создаем файл конфигурации nginx. Помещаем в него нужные переменные окружения, задаем расширение .conf.template и монтируем внутрь контейнера по пути /etc/nginx/templates/app-config.conf.template. Пример части такого шаблона конфигурации на секции server:server {
server_name $APP_HOST;
} - Передаем в контейнер переменную окружения HOST через docker run -e или секцию environment в compose-файле.
Теперь при старте на основании шаблона app-config.conf.template в контейнере nginx будет автоматически создана конфигурация app-config.conf и помещена в папку /etc/nginx/conf.d.