supervisordflower

Supervisord using environment variables in command


My supervisor configuration file

environment=USER=%(ENV_FLOWER_USER_NAME),PASS=%(ENV_FLOWER_PASSWORD)
command=/usr/local/opt/python/bin/flower --basic_auth=%(ENV_USER}:%(ENV_PASS)

When I start supervisord, I receive the following error

Restarting supervisor: Error: Format string 'USER=%(ENV_FLOWER_USER_NAME),PASS=%(ENV_FLOWER_PASSWORD)' for 'environment' is badly formatted

Any ideas?


Solution

  • Looks like you are missing the leading s in formatting environment variable name. Here is sample config file.

    You should use

    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
    

    For readability

    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