Skip to main content
 首页 » 编程设计

python之在正在运行的 docker 容器中的库上命中本地 IDE 断点

2024年11月24日24jyk

我有一个包含以下行的 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 

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

请您参考如下方法:

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

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

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

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

注意:您需要使用 insiders build目前,因为它是一个相当新的功能,我认为也是一个 great feature .

参见 Developing inside a Container , vscode 使您能够在本地主机上设置 IDE,但仍然可以让 IDE 调试容器中的代码。