使用 VSCode 在 Docker 容器中调试 Typescript 文件

Posted

技术标签:

【中文标题】使用 VSCode 在 Docker 容器中调试 Typescript 文件【英文标题】:Debug Typescript files in Docker container with VSCode 【发布时间】:2018-12-12 04:43:37 【问题描述】:

我已经为此苦恼了几个小时,似乎无法在任何地方找到解决方案 -

我在一个用 Typescript 编写的 Docker 容器中设置了一个简单的 Node API,我正在尝试使用 VSCode 附加到它以进行调试。我能够连接到它(并且调试控制台会显示它)但是一旦我尝试设置断点,我就会返回Breakpoints set but not yet bound

这是我的 launch.json


  "version": "0.2.0",
  "configurations": [
    
      "name": "Attach to Docker",
      "type": "node",
      "request": "attach",
      "port":9229,
      "restart": true,
      "sourceMaps": false,
      "localRoot": "$workspaceRoot",
      "remoteRoot": "/api",
      "protocol" : "inspector",
      "trace": "verbose"
    
  ]

带有调试器的终端输出

web_1       | Debugger listening on ws://0.0.0.0:9229/44aca479-580c-4ecb-a104-cf80f9041538                                              │
web_1       | For help, see: https://nodejs.org/en/docs/inspector                                                                       
web_1       | Debugger attached.

节点应用程序以node --inspect=0.0.0.0:9229 启动。我尝试运行一些 Mocha 测试,但我之前设置的所有断点都被完全忽略了。谁能帮我看看?这是我目前的repo,但我将努力在 Docker 中设置一个简单的 TS 应用程序,以尝试缩小可能性。

谢谢!

【问题讨论】:

不确定这是否有帮助,或者我是否正确阅读了您的问题...但我只是将我的(节点)容器卷映射到包含我的 vscode 的(本地)驱动器? 不太确定我是否关注@Intellidroid 在我的 docker compose 文件中,我会将卷设置为映射到我的代码所在的本地文件夹......所以“卷:./vscode-nodeserver-files:/directory-in-容器” 如何运行摩卡测试?我猜运行它们的包脚本与启动 api/应用程序的包脚本不同,因此不会检查 mocha 脚本。 【参考方案1】:

我希望这更有意义。 如果您查看服务器目录中的 Dockerfile,然后查看我在撰写文件上所做的操作

node container

【讨论】:

哦!是的,我的 docker-compose 里有这个:这个? github.com/andrewgu12/KSA-KExpo/blob/…

以上是关于使用 VSCode 在 Docker 容器中调试 Typescript 文件的主要内容,如果未能解决你的问题,请参考以下文章

vscode 远程连接 docker 容器进行 C++ 代码调试实践

vs code使用docker调试程序

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

VsCode远程调试,更改pythonpath指向docker容器的python解释器

在 Docker 容器中调试 webpack-dev-server 应用程序

vscode如何直接远程到ubuntu虚拟机docker容器?vscode远程开发