如何使用VS Code远程调试Docker容器中的python代码

Brotbret:

我刚刚注册了这个问题。关于是否可以使用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"
    }

我希望目前有足够的信息。

更新2:

好吧,我找到了解决方案。我完全误解了Docker的工作原理,并完全错误地尝试了它。我已经有一个completeley配置的Docker-compose。因此,我要做的就是将VS Code配置修改为docker-compose.yml。这意味着我只需要将launch.json更改为端口8069(默认的Odoo端口),并且只需要使用docker-compose up,即可在VS Code中进行调试。不幸的是,使用ptvsdkinda破坏了我的Odoo环境,但是至少我现在可以调试了。谢谢!

埃尔顿·斯通曼(Elton Stoneman):

是的,这是可能的-当Python应用程序在Docker容器中运行时,您可以将其视为远程计算机。

在Docker映像中,您需要使远程调试端口可用(例如EXPOSE 3000,在Dockerfile中),将ptvsd设置包含在Python应用程序中,然后在运行容器时发布该端口,例如:

docker run -d -p 3000:3000 my-image

然后使用docker inspect来获取正在运行的容器的IP地址,这就是您host在启动文件中使用的IP地址

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用远程Docker Machine运行/调试Pycharm Python脚本

Python Docker远程调试VS代码

使用VS Code调试使用ts节点在Docker容器中运行的TypeScript应用程序时,如何能够正确设置断点?

如何使用phpStorm调试Docker容器

如何使用docker远程api创建容器?

如何更改Docker容器中的代码?

使用Visual Studio Code在Docker中远程调试NodeJS

在VS Code中调试时如何跳过外部代码

Python远程调试器无法在VS Code中调试我的代码

如何在intellij中调试python容器?

如何使用Jenkins在远程Docker主机中运行容器

使用Docker进行Python远程调试

如何更改VS Code远程容器中的默认卷安装?

如何在Docker容器Visual Studio Code中调试Angular应用?

在Docker容器上进行远程调试时无法使用Visual Studio代码在任何断点处中断

如何使用VS Code调试npm本身(不是我的代码)?

我们可以使用Spyder从Docker容器远程运行和调试Python代码吗

如何配置VS Code来调试无业游民的容器中的代码?

如何使用Docker在Spark容器中运行Scala代码?

VS Code使用docker-compose在Docker中运行和调试Python

在VS Code中的PIP包中调试Python代码

如何将远程Language Server节点进程设置为可在VS Code中调试的?

如何远程调试在同一容器中运行的具有相同代码库但配置文件不同的两个spring boot应用程序?

可能的?从 Mac/Win 使用 VSCode 远程调试 .NET Core Linux Docker 容器

使用 Docker Compose 远程解释器进行调试:db 容器未知

如何使用 Visual Code 远程调试云实例中的 docker 容器

如何调试以退出代码 0 随机死亡的 docker 容器

如何使用 VS Code - Python Shell

如何使用运行代码选项在 vs 代码中运行 python