我正在通过以下方式启动一个 docker 容器:
docker run -e IP_AD=192.168.99.100 -p 80:80 flask_app
我只是试图将 IP 地址传递给 flask 应用程序,以便可以从我的应用程序加载某些内容。这个资源会随着环境的变化而变化,所以这就是我想将它作为环境变量传递的原因。
稍后,我想使用这个变量,但要从正在运行的 flask 应用程序的上下文中使用。如何从我的 flask 应用程序加载 IP_AD
并将其用作 python 变量?
我试过这样做:
import os
os.environ.get('IP_AD')
但它似乎没有加载任何东西。加载从 docker run -e 传递的 IP_AD 的正确方法是什么
最佳答案
像这样创建文件 .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")
关于python - Docker flask 应用程序环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097680/