我无法让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"]
搬运工-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
应用/ 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)
(我已经对此进行了一些编辑,以便简洁,不要放弃我正在做的事情:))
答案 0 :(得分:1)
这部分:
volumes:
- .:/code
您正在将容器中的/code
映射到当前目录。但是您的workdir
设置为/app
。
ADD . app
WORKDIR /app
因此,您无需将app.py
文件添加到容器中的workdir
,只需将卷从主机中的当前目录映射到/app
即可。容器中的目录。
所以,你需要改变:
volumes:
- .:/code
为:
volumes:
- .:/app
在docker-compose.yml
文件中。
然后删除Dockerfile
文件中的以下行:
ADD . app