在主pipe中使用docker环境-evariables

我一直试图通过-e选项将一个环境variables传递给Docker容器。 该variables旨在用于容器内的主pipe脚本。 不幸的是,该variables没有得到解决(即他们留在例如$INSTANCENAME )。 我尝试了${var}"${var}" ,但是这也没有帮助。 有什么我可以做或者这是不可能的?

docker运行命令:

 sudo docker run -d -e "INSTANCENAME=instance-1" -e "FOO=2" -v /var/app/tmp:/var/app/tmp -t myrepos/app:tag 

和主pipe文件:

 [program:app] command=python test.py --param1=$FOO stderr_logfile=/var/app/log/$INSTANCENAME.log directory=/var/app autostart=true 

variables被传递给你的容器,但是pipe理员不允许在configuration文件中使用像这样的环境variables。

您应该查看主pipe文档 ,特别是关于stringexpression式的部分。 例如,对于command选项:

请注意, command的值可能包括Pythonstringexpression式,例如/path/to/programname --port=80%(process_num)02d可能会在运行时扩展到/path/to/programname --port=8000

stringexpression式是针对包含键group_namehost_node_nameprocess_numprogram_name ,这里(supervisordconfiguration文件的目录)和所有以ENV_为前缀的supervisord的环境variables的ENV_