Supervisord在命令中使用环境变量

时间:2015-02-09 13:44:16

标签: supervisord flower

我的主管配置文件

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)'对于   '环境'格式错误

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您似乎错过了格式化环境变量名称中的前导s。这是sample config file

你应该使用

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

答案 1 :(得分:0)

如果此格式的名称前带有%(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

saludos:​​)