在docker容器中运行pudb

Dar*_*Ght 6 python pudb docker docker-compose

我更喜欢pudb进行python调试。我正在构建在docker容器中运行的python应用程序。

有谁知道如何使pudb在docker容器中可用吗?

谢谢

isa*_*nat 4

  • 您需要在 Docker 容器上安装 pudb(可以通过将此行添加到 Dockerfile: 来完成RUN pip install pudb)。
  • 您需要打开连接 pudb 的端口。例如

    • 对于 Dockerfile:添加EXPOSE 6900.
    • 对于 docker-compose ,语法是不同的:

      ports: - "6900:6900"

  • set_trace您需要在 Python 代码中希望入口点所在的位置添加一行。例如 from pudb.remote import set_trace; set_trace(term_size=(160, 40), host='0.0.0.0', port=6900)

  • 当代码运行并到达该点时,您可以使用 telnet 客户端连接到它,并像平常调试一样使用 pudb。在上述情况下,从另一个终端类型telnet 127.0.0.1 6900.

您可以在这里找到包含完整工作示例的存储库:https ://github.com/isaacbernat/docker-pudb