我有一个基本的 Flask Web 应用程序,我想在 Docker 容器中设置它。以下是我的 Dockerfile 设置:
FROM python:3.8-alpine
WORKDIR /mydir
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
ENV FLASK_APP="app.py"
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0", "-p", "8080"]
构建了 docker 文件
mydir % docker build -t geode:latest .
但是当我尝试通过 Docker 运行 Web 应用程序时,会发生这种情况:
mydir % docker run -p 8080:8080 geode:latest
* Serving Flask app 'app.py' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Usage: python -m flask run [OPTIONS]
Try 'python -m flask run --help' for help.
Error: While importing 'app', an ImportError was raised.
但是,我可以使用以下命令在本地运行 Web 应用程序
mydir % python3 -m flask run --host=0.0.0.0 -p 8080
所以我不确定为什么当我通过 docker 运行它时会收到“ImportError”,但当我自己运行命令时却没有。
我不知道为什么,但重建 Docker 容器允许它正常运行......也许我在构建容器后更改的 Dockerfile 中有错字?不确定,但我正在复制我用于另一个应用程序的结构 - 原来的工作有效,而这没有。所以某处有一个错字并且重建容器工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句