在Windows 10 Home计算机上使用Docker和Flask重新加载

在Windows 10 Home计算机上使用Docker和Flask重新加载,docker,flask,docker-compose,docker-volume,docker-toolbox,Docker,Flask,Docker Compose,Docker Volume,Docker Toolbox,我无法让Flask注意到对代码的更改并重新加载,这使得迭代编程非常困难 我的系统:我正在使用装有Windows 10 Home的PC运行Docker Toolbox(普通Docker在Windows 10 Home上不工作) 我的代码: DockerFile FROM python:3.4-alpine RUN pip install flask-security flask-sqlalchemy RUN pip install requests ADD . app WORKDIR /app

我无法让Flask注意到对代码的更改并重新加载,这使得迭代编程非常困难

我的系统:我正在使用装有Windows 10 Home的PC运行Docker Toolbox(普通Docker在Windows 10 Home上不工作)

我的代码:

DockerFile

FROM python:3.4-alpine
RUN  pip install flask-security flask-sqlalchemy
RUN pip install requests
ADD . app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python3"]
CMD ["app/app.py"]
docker compose.yml

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
app/app.py

from flask import Flask
# Create app
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'super-secret'
# Bcrypt is set as default SECURITY_PASSWORD_HASH, which requires a salt
app.config['SECURITY_PASSWORD_SALT'] = 'super-secret-random-salt'

@app.route("/")
def hello():
    return 'hello world'

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000, debug=True)
(为了简洁起见,我对这篇文章做了一点编辑,并没有透露我在做什么:)

  • 我做错什么了吗
  • 如果不是的话,我遇到了一张VirtualBox的旧票,那里的情况听起来非常相似。()如果这是我的问题,那么什么是好的解决方案或变通方法?(我不想买新机器或操作系统)
  • 本部分:

    volumes:
     - .:/code
    
    您正在将容器中的
    /code
    映射到当前目录。但是您的
    workdir
    设置为
    /app

    ADD . app
    WORKDIR /app
    
    因此,您不需要将
    app.py
    文件添加到容器中的
    workdir
    ,只需将卷从主机中的当前目录映射到容器中的
    /app
    目录

    因此,您需要更改:

    volumes:
     - .:/code
    
    致:

    在您的
    docker compose.yml
    文件中

    并删除
    Dockerfile
    文件中的以下行:

    ADD . app
    

    @user7097722这是自动检测到更改还是每次都需要重新启动容器?
    ADD . app