Супервизор с использованием переменных окружения в команде
Мой файл конфигурации супервизора
environment=USER=%(ENV_FLOWER_USER_NAME),PASS=%(ENV_FLOWER_PASSWORD)
command=/usr/local/opt/python/bin/flower --basic_auth=%(ENV_USER}:%(ENV_PASS)
Когда я запускаю супервизор, я получаю следующую ошибку
Перезапуск супервизора: Ошибка: строка формата 'USER=%(ENV_FLOWER_USER_NAME),PASS=%(ENV_FLOWER_PASSWORD)' для 'environment' неверно отформатирована
Есть идеи?
1 ответ
Решение
Похоже, вам не хватает ведущих s
в среде форматирования имя переменной. Вот пример файла конфигурации.
Вы должны использовать
environment=USER=%(ENV_FLOWER_USER_NAME)s,PASS=%(ENV_FLOWER_PASSWORD)s
command=/usr/local/opt/python/bin/flower --basic_auth=%(ENV_USER)s:%(ENV_PASS)s
Для удобства чтения
environment=
USER=%(ENV_FLOWER_USER_NAME)s,
PASS=%(ENV_FLOWER_PASSWORD)s
command=/usr/local/opt/python/bin/flower
--basic_auth=%(ENV_USER)s:%(ENV_PASS)s
Используйте переменную, если эта форма имеет префикс
%(ENV_NAME)s
к имени.
docker-compose.yml
environment:
ENVIRONMENT: production
PORT: 8011 # port uwsgi
supervisord.conf
[program:uwsgi]
command=uwsgi --ini uwsgi.ini --http :%(ENV_PORT)s
салюты:)