在正在运行的Docker容器中的库上达到本地IDE断点

时间:2019-05-14 22:53:16

标签: python 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

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

1 个答案:

答案 0 :(得分:1)

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调试容器中的代码。