7

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

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

谢谢

4

1 回答 1

5
  • 您需要在 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

于 2018-07-18T14:34:38.620 回答