创建Docker映像时找不到Flask应用程序



我希望有人能帮我。当我尝试运行docker run todolist docker时,会出现以下错误代码。

WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.

我的文件夹目录在这里:

Folder name: todoflaskappfinal
__pycache__
static
templates
venv
App.py
Dockerfile
requirements.txt
todo.db
ToDoList.db

在todofskappfinal文件夹中,我有一个Dockerfile文件:

# syntax=docker/dockerfile:1
FROM python:3.7.8
WORKDIR /tododocker
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

在App.py中,我已经正确地设置了所有内容(我认为(,显然这之间有更多的代码。

#Website Configuration
app = Flask(__name__)
if __name__ == "__main__":
app.run(debug=True, port=5000, host='0.0.0.0')

我已经将FLASK_APP设置为APP.py,用venv创建了虚拟环境等。当我在终端中键入flask run时,它会正确加载网站并在127.0.0.1上显示。但是,当我尝试使用docker build --tag todolist-docker命令,然后使用docker run todolist-docker时,上面会显示错误消息。有人看到我做错了什么吗?

是否在docker容器中定义了FLASK_APP?Dockerfile中没有ENV语句,也没有提到使用docker的-e或-ENV命令选项。您的容器不会从宿主环境继承您的环境变量。

# syntax=docker/dockerfile:1
FROM python:3.7.8
WORKDIR /tododocker
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
# Add this:
ENV FLASK_APP=App.py
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

最新更新