我希望我的flask应用程序在docker容器中以热重载的方式运行,但是如果我将app.py flask应用程序更改为app.run(debug=True,host='0.0.0.0')
而不是False
,则会引发错误:
< / p>
FileNotFoundError:[错误2]无此文件或目录:'/app/app.py':'/app/app.py'
如果我改回到False
:
app.run(debug=False,host='0.0.0.0')
它将运行,但不会热装。
我的Dockerfile是:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python3-pip python3-dev build-essential locales
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE pt_BR:pt:en
ENV LC_ALL en_US.UTF-8
ENV FLASK_ENV="development"
WORKDIR /app
COPY . /app
VOLUME ["/app"]
RUN pip3 install -r requirements.txt
ENTRYPOINT ["python3"]
CMD ["app.py"]
,然后使用以下命令运行它:
docker run -p 5000:5000 -v /Users/rodrigodmpa/Documents/IA/web:/app flask-app
答案 0 :(得分:0)
我看到Dockerfile有一些问题。我认为您当前的问题是df = dfa.dropna(subset = ['column name'])
行。您已将代码静态复制到映像中,并声明运行该映像的容器正在VOLUME ["/app"]
位置导出卷,然后将具有绑定装入卷的容器启动到同一位置。可能会导致一些权限问题,最终导致容器不再看到/app
的内容。您不需要/app
声明,因此放弃它。
还:始终将VOLUME
和apt-get update
放在相同的apt-get install
声明中。如果不这样做,则编辑安装的软件包,默认情况下,Docker将缓存上一个命令中的层。这意味着您可能很久以前就已经根据软件包定义安装了软件包。它看起来应该像RUN