在docker集装箱中的PyCharm远程debugging

我很难找出如何设置在Docker容器中运行的python应用程序(Flask)的远程debugging。 具体而言,我使用的是docker-compose,PyCharm专业版和python 3.5。 这是我迄今为止所做的:

  • 我将“pycharm-debug-py3k.egg”复制到项目文件夹中
  • 我在wsgi.py文件中添加了以下几行:

    import sys sys.path.append('../ pycharm-debug-py3k.egg')import pydevd pydevd.settrace('0.0.0.0',port = 8200,stdoutToServer = True,stderrToServer = True)

  • 我在PyCharm中创build了一个远程debuggingconfiguration(通过映射我的本地机器项目path的path到docker容器中的path)

通过从PyCharm运行debuggingconfiguration(点击错误图标),打印(和挂起):

Starting debug server at port 4200 Use the following code to connect to the debugger: import pydevd pydevd.settrace('0.0.0.0', port=4200, stdoutToServer=True, stderrToServer=True) Waiting for process connection... 

…在泊坞窗容器日志我读:

无法连接到0.0.0.0:4200

我该怎么办? (我的目标是能够在PyCharm中添加断点并停止Docker容器应用程序的执行以进行debugging)

使用远程解释器,这将一次解决几个问题。 我已经在这里回答了Docker开发环境中丰富的编辑

添加一个远程python SDK到你的IDE,这也将解决所有远程安装的库。 你将需要一个SSH连接来完成这个任务,所以安装sshd并使用我在答案中列出的共享开发者密钥。

尽pipe现在这样做更加努力,但是在进行远程端口连接时,我还是会给您提供更好的结果,在其他部分您还没有遇到,并且会发现。

如果您仍想使用基于端口的debugging,请参阅Docker:MacOSX Expose Container端口以主机 – 这解释了您应该如何理解attach和listen部分。