python - Docker flask 应用程序环境变量

标签 python ubuntu flask docker environment-variables

我正在通过以下方式启动一个 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/

相关文章:

r - 在 Ubuntu 22.04 上安装 R Studio

javascript - 将 Javascript 数组传递给 Flask

python - 如何使用yum在python2.7上安装python包

python - 安装Python包将会下载、安装和删除其他包

c++ - 在ubuntu中编译c++程序

java - 如何修复 Tomcat 应用程序 java.nio.file.AccessDeniedException

Python Flask调用不同版本API

python - 测试用户邀请系统

python - Django runserver 失败,并显示 django.db.utils.IntegrityError : NOT NULL constraint failed: reviewer_post. post_id (AutoField)

python - 删除矩阵中的行或列时输出错误