Visual Studio代码 - 如何远程调试Docker容器中的python代码

时间:2017-08-12 06:12:07

标签: python docker visual-studio-code remote-debugging

我试图在VSC中远程配音python:

是main.py文件:

print('Hello, World')

debug.py:

import ptvsd
ptvsd.enable_attach('my_secret', address=('0.0.0.0', 7102))
ptvsd.wait_for_attach()

Dockerfile:

FROM python:3.6-slim

EXPOSE 7102

RUN pip install ptvsd

WORKDIR /app

COPY . .

CMD ["python", "debug.py"]

它是launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach (Remote Debug)",
            "type": "python",
            "request": "attach",
            "localRoot": "${workspaceRoot}",
            "remoteRoot": "/app",
            "port": 7102,
            "secret": "my_secret",
            "host": "172.17.0.3"
        }
    ]
}

这是一个构建和启动容器的命令:

  

docker build -t python-for-debug。

     

docker run -it -p 7102:7102 python-for-debug

当我运行调试器时,我得到: screen of vs code

调试控制台没有任何错误,没有输出,没有问题。没有任何输出用于运行容器。没有泊坞日志

VS Code版本:1.15.0 Docker版本17.06.0-ce,build 02c1d87

2 个答案:

答案 0 :(得分:4)

嗨,您应该使用ptvsd 3,因此将Dockerfile中的RUN行更改为:

RUN pip3 install ptvsd==3.0.0

还可以在本地运行ptvsd安装:

$pip3 install ptvsd==3.0.0

有关更多信息,请访问https://code.visualstudio.com/docs/python/debugging#_remote-debugging 这对我有用,希望对您有所帮助。

答案 1 :(得分:0)

我认为问题是你的docker进程终止了。

您将debug.py作为Dockerfile中的命令启动。所以Docker启动任务,等待你的调试器附加然后退出,因为没有更多事情要做。

似乎您需要将代码放入debug.py作为最简单的尝试。请记住,您不能在

之后立即放置断点
ptvsd.wait_for_attach()

所以你最好在两者之间写一些备用线 希望这会有所帮助。