如何使用VS Code远程调试Docker容器中的python代码
我刚刚注册了这个问题。关于是否可以使用VS
Code在Docker容器中远程调试python代码。我在这里有一个完全配置的Docker容器。我在这方面获得了一些帮助,无论如何我还是Docker的新手。在其中运行Odoo
v10。但是我无法在VS
Code中进行远程调试。我已经尝试过这种解释,但我真的不明白。可能吗 如果是的话,我该如何运作?我正在使用VS Code 1.6.1和Don
Jayamanne的Python扩展来运行Kubuntu 16.04。是的,我希望我在这个问题上的正确位置,并且不违反任何规则。
只是尝试了埃尔顿·斯通曼的方式。有了它我得到这个错误:
There was an error in starting the debug server. Error = {"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect",
"address":"172.21.0.4","port":3000}
我的Dockerfile
样子是这样的:
FROM **cut_out**USER root
# debug/dev settings
RUN pip install \
watchdog
COPY workspace/pysrc /pysrc
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
python-dev \
&& /usr/bin/python /pysrc/setup_cython.py build_ext --inplace \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 3000
USER odoo
将pysrc
在我的Dockerfile是存在的,因为这是打算与之前的PyDev(Eclipse的)工作。
这是run command
我用过的:
docker-compose run -d -p 3000:3000 odoo
这是我的重要组成部分launch.json
:
{ "name": "Attach (Remote Debug)",
"type": "python",
"request": "attach",
"localRoot": "${workspaceRoot}",
"remoteRoot": "${workspaceRoot}",
"port": 3000,
"secret": "my_secret",
"host": "172.21.0.4"
}
我希望目前有足够的信息。
好吧,我找到了解决方案。我完全误解了Docker的工作原理,并完全错误地尝试了它。我已经有一个completeley配置的Docker-
compose。因此,我要做的就是将VS Code配置修改为docker-
compose.yml。这意味着我只需要将launch.json更改为端口8069(默认的Odoo端口),并且只需要使用docker-compose
up,即可在VS Code中进行调试。不幸的是,使用ptvsd
kinda破坏了我的Odoo环境,但是至少我现在可以调试了。谢谢!
回答:
是的,这是可能的-当Python应用程序在Docker容器中运行时,您可以将其视为远程计算机。
在Docker映像中,您需要使远程调试端口可用(例如EXPOSE
3000,在Dockerfile中),将ptvsd
设置包含在Python应用程序中,然后在运行容器时发布该端口,例如:
docker run -d -p 3000:3000 my-image
然后使用docker inspect
来获取正在运行的容器的IP地址,这就是您host
在启动文件中使用的IP地址。
以上是 如何使用VS Code远程调试Docker容器中的python代码 的全部内容, 来源链接: utcz.com/qa/432773.html