Python 在Docker上运行自动重新加载烧瓶应用程序时出错
我正在设置一个flask开发环境,希望我的flask服务器能够检测代码中的更改并自动重新加载 我的项目结构是:Python 在Docker上运行自动重新加载烧瓶应用程序时出错,python,flask,docker-compose,uwsgi,Python,Flask,Docker Compose,Uwsgi,我正在设置一个flask开发环境,希望我的flask服务器能够检测代码中的更改并自动重新加载 我的项目结构是: python-flask |--docker-compose.yml |--flask | |--Dockerfile | |--requirements.txt | |--app.ini | |--run.py | |--app | |--__init__.py | |
python-flask
|--docker-compose.yml
|--flask
| |--Dockerfile
| |--requirements.txt
| |--app.ini
| |--run.py
| |--app
| |--__init__.py
| |--app.py
|--nginx
|--Dockerfile
|--nginx.conf
app.py的代码
import os
from flask import Flask, session, g
app = Flask(__name__)
@app.route("/")
def index():
# Use os.getenv("key") to get environment variables
app_name = os.getenv("APP_NAME")
if app_name:
return f"Hello from {app_name} running in a Docker container behind Nginx!"
return "Hello from Flask"
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
这是我的docker compose.yml
version: "3.7"
services:
flask:
build: ./flask
container_name: flask
restart: always
volumes:
- ./flask/app:/app
environment:
- APP_NAME=MyFlaskApp
expose:
- 8080
nginx:
build: ./nginx
container_name: nginx
restart: always
ports:
- "80:80"
如中所述,我在我的app.ini中添加了py autoreload=1
。这是我的app.ini
[uwsgi]
wsgi-file = run.py
callable = app
socket = :8080
processes = 4
threads = 2
master = true
chmod-socket = 660
vacuum = true
die-on-term = true
py-autoreload = 1
当我运行docker compose up--build
时,flask返回错误:
Starting nginx ... done
Attaching to flask, nginx
flask | realpath() of app.ini failed: No such file or directory [core/utils.c line 3654]
我不确定如何修复此错误。我已尝试将docker-compose.yml中的
卷更改为/app:/app
,但错误依然存在请发布烧瓶/Dockerfile的内容
请发布烧瓶/Dockerfile的内容