Можно ли переопределить UWSGI-файл с переменными окружения - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь создать «базовый» образ докера для запуска среды Python с UWSGI. Цель состоит в том, чтобы другие строили свои собственные образы докеров, где они выгружают логику своего приложения и любые переопределения конфигурации, в которых они нуждаются.

Я подумал, что было бы неплохо иметь возможность переопределить любые настройки по умолчанию из файла uwsgi.ini, указав UWSGI_* переменные среды, переданные uwsgi при запуске.

Я попробовал этот подход, и установка значения через env var работает, если его вообще нет в ini-файле (например, UWSGI_WORKERS=4). Но если я добавлю строку workers=1 в ini-файл, она переопределит env var.

Это ожидаемое поведение? Я не могу найти что-нибудь о порядке разрешения конфигурации в документации. Должен ли я прибегнуть к чему-то подобному? Использование env vars кажется намного чище.

if-exists = ./override.ini
include = %(_)
endif =

1 Ответ

0 голосов
/ 19 ноября 2018

Сначала сделайте так, чтобы все переменные среды в INI-файле ссылались на переменные среды, как показано ниже:

[uwsgi]
http = $(HTTP_PORT)
processes = $(UWSGI_WORKERS)
threads = $(UWSGI_THREADS)
...

Затем задайте любые значения по умолчанию для этих переменных среды внутри Dockerfile.

Теперь любой, кто использует ваш базовый образ, может перезаписать любую конфигурацию, установив определенную переменную env.

...