在Docker容器中运行pudb

7

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

有人知道如何让pudb在Docker容器内可用吗?

谢谢。


请查看 https://hub.docker.com/r/alexisno/python-dev/~/dockerfile/ 或 https://github.com/saulshanabrook/cosc465-iprouter/blob/master/Dockerfile。 - user2915097
@user2915097 谢谢。 - DarcliGht
1个回答

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

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

      ports: - "6900:6900"

  • 您需要在Python代码中想要进入点处添加一行set_trace。例如: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


你有没有想过如何避免在开始时出现的欢迎/配置屏幕?我尝试将pudb.cfg复制到容器中,但似乎被忽略了。 - ezdazuzena

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接