2015-06-26 15 views
2

我一直試圖通過-e選項將環境變量傳遞給Docker容器。該變量旨在用於容器中的主管腳本。不幸的是,這個變量沒有得到解決(即他們停留在例如$INSTANCENAME)。我試過${var}"${var}",但這也沒有幫助。有什麼我可以做或者這是不可能的嗎?在主管中使用docker環境-e變量

泊塢窗運行命令:

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

和監事文件:

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

回答

4

變量被傳遞給你的容器,但上司不讓使用環境變量這樣裏面的配置文件。

您應該查看supervisor documentation,特別是有關字符串表達式的部分。例如,對於command選項:

請注意,command的值可能包括Python字符串表達式,例如, /path/to/programname --port=80%(process_num)02d可能在運行時擴展到/path/to/programname --port=8000

字符串表達式是針對包含密鑰group_namehost_node_nameprocess_numprogram_name,這裏(該supervisord配置文件的目錄)的字典進行評估,並與ENV_前綴的supervisord的環境變量。

+0

感謝 - 這就像一個魅力工作! – orange