python - 为什么我的 Docker Volume 不允许自动重新加载我的 Flask 应用程序?
问题描述
我正在尝试在 WSL2 中设置一个开发环境以在 Flask 网站/项目上工作,但是当我使用 docker-compose 启动我的项目时遇到了自动重新加载的问题。目前,该网站运行良好,但如果我更改任何模板并重新加载浏览器,除非我完全关闭容器并重建它,否则不会反映该更改。我还希望 Flasks 正常的自动重新加载功能能够正常工作。我尝试按照其他人的建议将卷挂载添加到我的 docker-compose.yml 无济于事,这是我当前的设置:
码头工人-compose.yml:
version: "3.8"
services:
website:
build: ./website
ports:
- "5000:5000"
volumes:
- website:/code
volumes:
website:
Dockerfile(在网站上):
FROM python:latest
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_ENV=development
RUN apt-get update
RUN apt-get install cmake autoconf automake libtool nasm make pkg-config
COPY mozjpeg mozjpeg
RUN cd mozjpeg &&\
mkdir build && cd build &&\
cmake -G"Unix Makefiles" ../ &&\
make install
RUN cd /usr/local/bin &&\
ln -s /opt/mozjpeg/bin/cjpeg
RUN apt-get install -y pngquant
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . /code
#RUN pngquant --quality=65-80 test.png
#RUN cjpeg -quality 50 test.jpg
#RUN pwd
#RUN ls
EXPOSE 5000
CMD ["flask", "run"]
解决方案
使用以下docker-compose.yml
,flask 能够实现实时编码/自动重新加载 docker
编辑-1
这是示例烧瓶应用程序的文件夹结构
C:.
| docker-compose.yml
| output.doc
| README.md
|
\---app
| app.py
| Dockerfile
| requirements.txt
|
\---__pycache__
app.cpython-36.pyc
而且Dockerfile
是
FROM python:3.6
COPY . /app
WORKDIR /app
RUN apt-get update
RUN apt-get install -y cmake autoconf automake libtool nasm make pkg-config
RUN apt-get install -y pngquant
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
文件docker-compose.yml
是
version: "3.8"
services:
web:
build: ./app
environment:
FLASK_DEBUG: 1
FLASK_APP: ./app.py
ports: ['5000:5000']
volumes: ['./app:/app']
推荐阅读
- hyperledger-composer - 用户如何在 hyperledger composer 中注册?
- php - 使用 MySQL 和 PHP 为动态 d3.js 库生成 JSON
- php - 使用 jquery 从 php/json 填充嵌套在 ul 中的 html 表
- avplayer - iOS12下视频无法正常播放
- python - 在多个线程中重用 Tensorflow 会话会导致崩溃
- c# - 如何在 C# 中并排显示两个矩阵?
- python - 为什么python中的多处理模块需要pickle
- elixir - 比较 Ecto 中的十进制值
- reactjs - React Chartjs - 间隔更新图表
- python - 从同一数据框中选择不同年份的值