Python 3.x Docker中的烧瓶无法检测烧瓶_ENV
我构建了一个flask应用程序,并在docker中使用Dockerfile启动它,如下所示Python 3.x Docker中的烧瓶无法检测烧瓶_ENV,python-3.x,docker,flask,Python 3.x,Docker,Flask,我构建了一个flask应用程序,并在docker中使用Dockerfile启动它,如下所示 FROM python:3.7 COPY requirements.txt . RUN pip install -r requirements.txt COPY . . WORKDIR /app CMD export FLASK_ENV=production ENTRYPOINT [ "python", "-u", "app.py" ] 在flask应用程序中,我为开发和生产指定了一些配置
FROM python:3.7
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
WORKDIR /app
CMD export FLASK_ENV=production
ENTRYPOINT [ "python", "-u", "app.py" ]
在flask应用程序中,我为开发和生产指定了一些配置
if os.environ['FLASK_ENV'] == 'production':
UPLOAD_URL = '/v1/path/to/production/server'
elif os.environ['FLASK_ENV'] == 'development':
UPLOAD_URL = '/upload'
但是,启动脚本会导致错误,容器无法检测到FLASK_ENV,即使该命令是在Dockerfile中设置的。有人能帮忙吗
Traceback (most recent call last):
File "app.py", line 14, in <module>
import config
File "/app/config.py", line 14, in <module>
if os.environ['FLASK_ENV'] == 'production':
File "/usr/local/lib/python3.7/os.py", line 681, in __getitem__
raise KeyError(key) from None
KeyError: 'FLASK_ENV'
运行生成的图像时。您描述的CMD将被包装在sh-c中,然后作为命令行参数传递给您命名为入口点的程序 在应用程序中,请尝试打印。您应该看到它包含[app.py、/bin/sh、-c、export…] 如果要为映像设置环境变量,则需要Dockerfile指令。例如,您不能运行导出。。。;以这种方式设置的任何变量都将在运行行结束时丢失
运行生成的图像时。您描述的CMD将被包装在sh-c中,然后作为命令行参数传递给您命名为入口点的程序 在应用程序中,请尝试打印。您应该看到它包含[app.py、/bin/sh、-c、export…] 如果要为映像设置环境变量,则需要Dockerfile指令。例如,您不能运行导出。。。;以这种方式设置的任何变量都将在运行行结束时丢失 替换: CMD export FLASK_ENV=生产 与: 环境烧瓶\u环境=生产 ENV指令还可用于向您希望集装箱化的服务提供环境变量。替换: CMD export FLASK_ENV=生产 与: 环境烧瓶\u环境=生产 ENV指令还可用于向希望容器化的服务提供环境变量
ENV FLASK_ENV=production
CMD ["python", "-u", "app.py"]