运行 docker 容器内的 pudb

Running pudb inside docker container

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

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

谢谢

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

    • 对于 Docker 文件:添加 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