Супервизор с использованием переменных окружения в команде

Мой файл конфигурации супервизора

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

салюты:)

Другие вопросы по тегам