Python 如何使用docker主机挂载正确重新加载烧瓶?
如何使flask在docker卷主机装载中正确重新加载 我有以下flask应用程序和docker撰写文件Python 如何使用docker主机挂载正确重新加载烧瓶?,python,docker,flask,docker-compose,Python,Docker,Flask,Docker Compose,如何使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 imp
---
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
---
services:
flask:
image: domain/my-flask:latest
environment:
- PYTHONUNBUFFERED=1
- FLASK_ENV=development
- FLASK_DEBUG=1
volumes:
- ".:/app" #you can replace '.' with a full dir path
requirements.txt
watchdog==0.9.0
Werkzeug==0.15.2
首先要了解的是,当您从主机的单个文件创建卷装载到容器中时,实际上是将文件的显式inode映射到容器。许多编辑器(如vim或pycharm)使用交换文件将工作文件复制到目标文件的顶部——更改其inode id。为了获得最一致的结果,建议使用以下方法: 1:关闭vim或pycharm等编辑器中的“使用安全写入” 2:装载目标目录而不是单个文件 3:Set ENV变量:pythonunbuffer=1(这指示Docker不要将Python的输出缓冲在标准输出缓冲区中) 4:安装Werkzeug看门狗。这是一个性能更高的基于inotify的侦听器,如果系统上安装了flask,它将由flask运行 docker compose.yml
---
services:
flask:
image: domain/my-flask:latest
environment:
- PYTHONUNBUFFERED=1
- FLASK_ENV=development
- FLASK_DEBUG=1
volumes:
- ".:/app" #you can replace '.' with a full dir path
requirements.txt
watchdog==0.9.0
Werkzeug==0.15.2