gpt4 book ai didi

python - 在主管中使用 docker 环境 -e 变量

转载 作者:行者123 更新时间:2023-11-28 22:43:08 25 4
gpt4 key购买 nike

我一直在尝试通过 -e 选项将环境变量传递给 Docker 容器。该变量旨在用于容器内的主管脚本。不幸的是,变量没有得到解析(即它们保留在例如$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

和主管文件:

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

最佳答案

变量正在传递给您的容器,但主管不允许在配置文件中使用这样的环境变量。

您应该查看 supervisor documentation ,特别是关于字符串表达式的部分。例如,对于 command 选项:

Note that the value of command may include Python string expressions, e.g. /path/to/programname --port=80%(process_num)02d might expand to /path/to/programname --port=8000 at runtime.

String expressions are evaluated against a dictionary containing the keys group_name, host_node_name, process_num, program_name, here (the directory of the supervisord config file), and all supervisord’s environment variables prefixed with ENV_.

关于python - 在主管中使用 docker 环境 -e 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com