docker - 带 docker 的 Flask 调试控制台不起作用

标签 docker flask

我在 docker 中有这个 flask 应用程序, Debug模式设置为:

app_1  |  * Serving Flask app 'my_app' (lazy loading)
app_1  |  * Environment: development
app_1  |  * Debug mode: on
app_1  |  * Running on all addresses.
app_1  |    WARNING: This is a development server. Do not use it in a production deployment.
app_1  |  * Running on http://172.22.0.2:5000/ (Press CTRL+C to quit)
app_1  |  * Restarting with stat
app_1  |  * Debugger is active!
app_1  |  * Debugger PIN: 140-110-975
当我遇到错误并单击小控制台图标时,系统会询问我输入的 PIN 码,然后得到:[console ready] .
但是,当我在控制台中输入内容时,我有:
Not Found

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
到网址:http://localhost:5000/submit?&__debugger__=yes&cmd=dump()&frm=140300814179632&s=ljASKJ6S2EwWtVcN8EHR我认为可能是正确的端口没有打开,因为它可能用于 websockets(在 webpack 中热重载),但在这里,端口似乎与 web 应用程序相同(5000)。
那么知道什么可能会出错吗?
谢谢
我正在使用:
Python 3.9.5
Flask 2.0.1

编辑
这是docker-compose.yml :
version: "3.3"

services:
  app:
    build: .
    command: flask run --host=0.0.0.0 --debugger
    volumes:
      - .:/app
    working_dir: /app
    ports:
      - 5000:5000
    env_file:
      - .env

最佳答案

通过使用 DEBUG=True你告诉 Flask 每次都重新加载服务器 main.py变化。这样做时,它会调用 main.py每次,杀死应用程序,然后在端口 5000 中重新启动它正在进行中。这是预期的行为。
您的问题与 docker 无关,更多是关于在 Flask 应用程序中设置 prometheus。
有一些扩展可以帮助解决这个问题,例如:
https://github.com/sbarratt/flask-prometheus或者
https://github.com/hemajv/flask-prometheus
也许这也为解决方案提供了一些线索,但请注意,这不是您在这里问的问题。
我建议首先尝试这些扩展,这意味着重构您的代码。从那里开始,如果在实现扩展时出现问题,则创建另一个问题,提供 mcve .
编辑:
https://www.agiratech.com/debugging-python-flask-app-in-docker-container 也有关于这个问题的文档。

关于docker - 带 docker 的 Flask 调试控制台不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68195791/

相关文章:

asp.net - Release模式下 swagger 文件出现问题

git - 如何从Jenkins多分支管道进行Git和Docker标记

python - SQLAlchemy - 有没有办法查看当前 session 中的内容?

javascript - 在按钮上单击添加操作 url jquery

docker - 将具有Yii的docker容器连接到具有MySQL服务器的非链接的docker容器

docker - 如何在docker run上将数据管道传输到dockerified应用程序?

docker - 我可以在 AMD64 机器上为 Raspberry Pi 构建 Docker 包含吗?

python - 尝试安装 Flask 0.9 后的警告和错误

python - 如何将两个 JSON 附加到一个 JSON,Python Flask?

python - flask / flask -CORS : CORS header ‘Access-Control-Allow-Origin’ missing