簡體   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