我想让我的flask服务器检测到代码的变化并自动重新加载。我在docker container上运行这个。每当我改变了一些东西,我就必须重新构建容器。我不知道哪里出了问题。这是我第一次使用flask。
这是我的树
├── docker-compose.yml
└── web
├── Dockerfile
├── app.py
├── crawler.py
└── requirements.txt
和代码(app.py)
from flask import Flask
import requests
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello Flask!!'
if __name__ == '__main__':
app.run(debug = True, host = '0.0.0.0')
和停靠合成
version: '2'
services:
web:
build: ./web
ports:
- "5000:5000"
volumes:
- ./web:/code
请给予我一些建议。先谢谢你了。
5条答案
按热度按时间2nbm6dog1#
Flask支持在调试模式下重新加载代码。问题是应用程序运行在一个容器上,这将它与您正在开发的真实的源代码隔离开来。无论如何,您可以在运行的容器和
docker-compose.yaml
上的卷的主机之间共享源代码,如下所示:这里是
docker-compose.yaml
这里是
Dockerfile
:svdrlsy42#
我设法实现了 flask 自动重载在docker使用docker-compose与以下配置:
您必须在Docker合成文件中手动指定环境变量和入口点,以便实现自动重新加载。
lsmd5eda3#
假设您的文件结构如下:
停靠文件:(注意工作方向)
Docker编写:
z31licg04#
这是我的例子:
第一个
debug=True
使Flask能够随着代码的更改而更改。Docker已插入到fs事件中以更改容器”“中得代码“.”
fzwojiic5#
如果合成运行不同的服务(例如app和rq),则需要在两者上设置宗卷,否则将无法工作。