首页 > 解决方案 > 在正在运行的 docker 容器中的库上命中本地 IDE 断点

问题描述

我有一个包含以下行的 Dockerfile:

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

我想在本地 IDE 中通过要求安装的库上设置一些断点。我想知道如何启动 docker 映像,以便可以从我的本地 IDE 访问这些文件。相关模块位于图像中:

/usr/local/lib/python3.7/site-packages

所以,我正在考虑使用这条线:

docker run \
    -v site_pkgs:/usr/local/lib/python3.7/site-packages
    --entrypoint python3 \
    app-dev

但是,这似乎覆盖了容器目录,使其无法找到所需的模块。有关如何在正在运行的容器上执行此类调试的任何指导都将非常有帮助。谢谢!

标签: pythondockeride

解决方案


a)如果您只是想在容器中获取 python 包模块代码,并在本地 IDE 中有测试应用程序来调用这些模块。然后你不需要运行这个容器,只需:

docker cp /usr/local/lib/python3.7/site-packages .

之后,这些 python 模块的 py 文件将在您的本地(docker 主机)中。然后您可以使用本地 IDE 来调试它们,当然也可以使用您自己的测试代码。

b)如果您的意思是使用本地 IDE 直接调试容器中的代码,那么VSCode IDE是您的选择。

注意:您需要使用当前构建的内部人员,因为它是一个非常新的功能,我认为也是一个很棒的功能

请参阅在容器内开发,vscode 使您能够在本地主机中设置 IDE,但仍然可以让 IDE 调试容器中的代码。


推荐阅读