【问题标题】:Docker flask application environment variablesDocker 烧瓶应用程序环境变量
【发布时间】:2016-03-09 22:29:36
【问题描述】:

我正在通过以下方式启动一个 docker 容器:

docker run -e IP_AD=192.168.99.100 -p 80:80 flask_app

我只是试图将 IP 地址传递给烧瓶应用程序,以便可以从我的应用程序加载某些内容。这个资源会随着环境的变化而变化,所以这就是我想将它作为环境变量传递的原因。

稍后,我想使用这个变量,但要从正在运行的烧瓶应用程序的上下文中使用。如何从我的烧瓶应用程序中加载 IP_AD 并将其用作 python 变量?

我试过这样做:

import os
os.environ.get('IP_AD')

但它似乎没有加载任何东西。加载从 docker run -e 传递的 IP_AD 的正确方法是什么

【问题讨论】:

  • -e 是正确的,例如 docker run --rm -e ENV=1 python python -c 'import os; print(os.environ["ENV"])'
  • 您的建议有效。我的问题是我没有将我的 IP 地址作为字符串传递。谢谢

标签: python ubuntu flask docker environment-variables


【解决方案1】:

像这样创建文件 .env

model_path=./model/data_fs.csv

然后通过执行安装库.env

pip3 install python-dotenv==0.17.1

将此添加到您的代码中以加载所有 .env 变量

from dotenv import load_dotenv
load_dotenv()

所以你可以访问它

if os.getenv("model_path", None) is not None:
    return os.getenv("model_path", None)
# otherwise raise an exception
raise Exception("no .env file found")

【讨论】:

    【解决方案2】:

    你可以这样试试

    import os
    os.environ["IP_AD"]
    

    【讨论】:

    • 这个答案复制了第一条评论。
    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2015-04-04
    • 2019-10-25
    • 2019-09-06
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    相关资源
    最近更新 更多