繁体   English   中英

如何调试在容器中使用 gunicorn 运行的 Flask 应用程序?

[英]How to debug a Flask app which runs with gunicorn in a container?

我一直在寻找一种方法来启动 python 调试器,这样我就可以调试我的烧瓶应用程序,该应用程序在 docker 容器内使用 gunicorn 执行,然后从外部使用我的 VSCode 连接到它。

但我没有找到任何解决方案。 实际上, 这里有人建议根本不可能?

有没有办法调试由 gunicorn 执行的烧瓶应用程序?

所以看起来这对于gunicorn来说是非常困难的,如果不是不可能的话。 所以我所做的是

  1. 在我的项目中创建一个degub_app.py文件:
 from myapp.api import create_app if __name__=="__main__": app = create_app() app.run('0.0.0.0', 8000, debug=False)
  1. 我创建了一个调试容器,它在启动时什么都不运行,只是在我的docker-compose文件中像这样等待空闲:
 api-debug: image: "myapp:latest" restart: on-failure:3 environment: volumes: - ./:/usr/src/app depends_on: - rabbitmq - redis - mongo tty: true stdin_open: true command: tail -F anything ports: - 8000:8000
  1. 然后将VSCode与我附加到该容器的Remote Container插件一起使用。 这将启动一个新的 VSCode 窗口并显示容器内的文件。

注意由于 VSCode 现在已连接到容器,因此我必须重新安装 Python 扩展(您可以查看它,但很容易只需转到插件并重新安装到容器)

  1. 我在容器内创建了一个launch.json来运行我上面提到的degub_app.py ,如下所示:

{ “版本”:“0.2.0”,“配置”:[ { “名称”:“Python:调试 API”,“类型”:“python”,“请求”:“启动”,“程序”:“$ {workspaceFolder}my_path/debug_api.py", "console": "integratedTerminal", "justMyCode": false } ] }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM