简体   繁体   English

Docker Flask 应用程序环境变量

[英]Docker flask application environment variables

I'm starting a docker container the following way:我正在通过以下方式启动 docker 容器:

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

I'm simply trying to pass an IP Address to the flask application so that something can be loaded from my application.我只是想将 IP 地址传递给 Flask 应用程序,以便可以从我的应用程序加载某些内容。 This resource will change from environment to environment, so this is the reason I would like to pass it as an environment variable.这个资源会随着环境的不同而变化,所以这就是我想把它作为环境变量传递的原因。

Later, I would like to use this variable but from the context of the running flask application.后来,我想使用这个变量,但是从正在运行的 Flask 应用程序的上下文中使用。 How can I load IP_AD from my flask application and use it as a python variable?如何从我的IP_AD应用程序加载IP_AD并将其用作 python 变量?

I've tried doing this:我试过这样做:

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

But it does not seem to be loading anything.但它似乎没有加载任何东西。 What is the correct way to load IP_AD passed from docker run -e加载从 docker run -e 传递的 IP_AD 的正确方法是什么

create file .env like this像这样创建文件 .env

model_path=./model/data_fs.csv

then install library .env by doing然后通过执行安装库.env

pip3 install python-dotenv==0.17.1

add this to your code to load all your .env variable将此添加到您的代码以加载所有.env变量

from dotenv import load_dotenv
load_dotenv()

so you can access it所以你可以访问它

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")

you can try like this你可以这样试试

import os
os.environ["IP_AD"]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM