如何使flask在docker卷主机装载中正确重新加载
我有以下flask应用程序和docker撰写文件
---
services:
flask:
image: domain/my-flask:latest
environment:
- FLASK_DEBUG=1
volumes:
- "server.py:/app/server.py"
使用hello world flask应用程序:
from flask import Flask
import os
app = Flask(__name__)
print('Change Me')
@app.route('/')
def hello_world():
return 'Hello, World!'
app.run(host='0.0.0.0', port=80)
当前将“更改我”更改为“已更改”,我看到“更改我”输出
在第三次更改中,我将看到“已更改”
首先要了解的是,当您从主机的单个文件创建卷装载到容器中时,实际上是将文件的显式inode映射到容器。许多编辑器(如vim或pycharm)使用交换文件,将工作文件复制到目标文件的顶部,更改其inode id。为了获得最一致的结果,建议使用以下方法:
1:关闭vim或pycharm等编辑器中的“使用安全写入”
2:装载目标目录而不是单个文件
3:Set ENV变量:pythonunbuffer=1(这指示Docker不要将Python的输出缓冲在标准输出缓冲区中)
4:安装Werkzeug看门狗。这是一个性能更高的基于inotify的侦听器,如果系统上安装了flask,它将由flask运行
docker compose.yml
requirements.txt
相关问题 更多 >
编程相关推荐