我正在开发一款应用,并试图通过Docker
environment中的flask
以DEBUG
模式运行supervisord
个实例。
我使用supervisord
启动我的 nginx 和 flask 实例。
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
[program:flask]
command=gunicorn views:app -b localhost:5000 -w 2
directory=/daemon/api
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
[program:nginx]
command=nginx
version: '2'
services:
backend:
…
daemon:
environment:
- FLASK_APP=/daemon/api/views.py
- FLASK_DEBUG=1
volumes:
- ./daemon/api:/daemon/api
command: supervisord
frontend:
…
尽管在我的 docker-compose.override.yml 中将FLASK_DEBUG=1
设置为环境变量,但flask
并未在调试模式下运行。
在调试模式下运行需要更改什么?
答案 0 :(得分:1)
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
[include]
files = /etc/supervisor/conf.d/flask-dev.conf /etc/supervisor/conf.d/nginx.conf
使用新方法python -m flask run --host=0.0.0.0
将开发服务器作为模块运行(否则无法在nginx
后面工作)
[program:dev]
command=python -m flask run --host=0.0.0.0
directory=/daemon/api
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/flask.log
stdout_logfile_maxbytes=5MB
stdout_logfile_backups=5
运行一个特殊命令,在开发环境中使用supervisord
启动dev.conf
并设置FLASK_DEBUG=1
:
…
daemon:
environment:
- FLASK_APP=/daemon/api/views.py
- FLASK_DEBUG=1
volumes:
- ./daemon/api:/daemon/api
command: supervisord -c /etc/supervisor/conf.d/dev.conf
…
从独立WSGI容器Proxy Setups section 中的示例中,我注意到尾随斜杠,因此将它们添加到我的location
和{{1}指令。
proxy_pass