在主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_name
,host_node_name
,process_num
,program_name
,这里(supervisordconfiguration文件的目录)和所有以ENV_
为前缀的supervisord的环境variables的ENV_
。
- 将docker环境variables设置为具有不同名称的现有环境variables
- Dockerfile和环境variables
- Docker撰写开发和生产环境最佳工作stream程
- Docker-用服务env_file编写错误
- 从链接dockers重命名环境variables
- Docker – 更新容器的环境variables
- 如果设置了variables,如何configurationdocker组合使用给定的子网,或者如果不是,select自己?
- 如何确认发送到docker run命令的环境variables是否被接收?
- Docker入口脚本无法获得$ DB_PORT_3306_TCP_ADDR环境variables