使用VSCode Remote调试Python-容器

时间:2019-10-29 05:46:52

标签: python-3.x docker visual-studio-code remote-debugging vscode-remote

我正在运行带有Python应用程序和WSGI配置的容器,该容器接受一堆GET参数。目标是通过浏览器(或curl)请求应用,并使用VSCode Remote - Containers扩展名获取工作断点。

主机操作系统:Fedora 28,容器操作系统:CentOS 7

Docker详细信息:

- Docker v18.09.9
- No Dockerfile(just running container)
- Docker network using
- Container IP is 172.18.0.2
- App directory is mounted from host filesystem

应用程序详细信息:

- No frameworks
- Just Python3 with several modules
- Virtual environment using

IDE详细信息:

- VSCode v1.38.1
- Remote - Containers extension
- Python extension(installed in attached container also)

在VSCode中,我可以Attach to Running Container,然后打开较早挂载的应用程序目录并编辑代码,安装软件包等。可以,但是我坚持调试配置,预定义的项目(Flask,Django等)不匹配我的工作流程。

如何为此目的调整launch.json文件?

1 个答案:

答案 0 :(得分:0)

您应该指定要使用的Web框架。我正在使用金字塔,调试正常。

这是我的做法:

  • 正如您所说,附加到正在运行的容器
  • 使用“打开文件夹...”打开应用程序源所在的路径。您不应将更多文件夹添加到工作区,否则将无法工作。
  • 在正在运行的容器中安装Python扩展。如果您打开扩展栏,则应该有一个按钮,显示Install in attached container...
  • 从命令面板中选择View: Show Debug
  • 在调试配置中单击齿轮图标,您应该能够选择Python作为语言。
  • 无论哪种方式,您最终都可以编辑一个launch.json文件。

这是我在金字塔中保存的文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Pyramid Application",
            "type": "python",
            "request": "launch",
            "module": "pyramid.scripts.pserve",
            "args": [
                "--reload",
                "--server-name",
                "docker",
                "${workspaceFolder}/development.ini"
            ],
            "pyramid": true,
            "jinja": true,
            "justMyCode": false,
        }
    ]
}

请注意"justMyCode": false,。如果您的项目具有在构建容器时安装的其他本地项目的依赖项,则这非常重要。

例如,如果您在需求文件中有对git存储库的引用,则将其安装在系统目录中,并且默认情况下,调试器不会进入那里的功能。使用此选项可以使调试器进入其中。