Найти в Дзене
Заметки IT-инженера

Шаблоны в контейнере nginx

Шаблоны в контейнере nginx

Настраивая nginx под один из проектов, я столкнулся с необходимостью использовать переменные окружения в его конфигурации. Оказалось, что Docker-образ из коробки поддерживает такую возможность: создание конфигурации с подстановкой переменных окружения посредством шаблонов.

Работает это очень просто: нужно положить файл с нужным расширением в правильную папку внутри контейнера с nginx, и тогда магия сработает. По шагам:

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

Теперь при старте на основании шаблона app-config.conf.template в контейнере nginx будет автоматически создана конфигурация app-config.conf и помещена в папку /etc/nginx/conf.d.