如何使用docker-compose.debug.yml来debugging在docker中运行的节点?

我已经使用VSdocker扩展来创builddocker文件。 但是我不知道使用docker-compose.debug.yml来debugging我的代码的“正确”方式是什么,例如,如何设置我的env。 所以我可以打F5和所有的魔法发生。

我做了一个方法来debugging我的代码。 首先在terminal中运行docker-compose -f docker-compose.debug.yml 。 然后使用In-container Node Development:Visual Studio Code中的launch.json将其附加到docker中的节点上。

但是我认为Code可能会提供一种简化debuggingstream程的简单方法。

你可以做,但通过一些修改。

launch.json

 { // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "Attach to Remote", "address": "127.0.0.1", "port": 9229, "localRoot": "${workspaceRoot}", "remoteRoot": "/usr/src/app", "preLaunchTask": "start_node_compose" } // { // "type": "node", // "request": "launch", // "name": "Launch Program", // "program": "${workspaceRoot}/index.js" // } ] } 

正如你所看到的,我评价了本地的发射,并且把它作为第一个,所以它在F5上运行。 接下来,我们需要定义一个start_node_compose任务

tasks.json

 { "version": "0.1.0", "command": "myCommand", "isShellCommand": false, "args": [], "showOutput": "always", "tasks": [ { "taskName": "start_node_compose", "showOutput": "always", "isBuildCommand": true, "command": "/bin/bash", "args": [ "-c", "docker-compose -f docker-compose.yml -f docker-compose.debug.yml up -d && sleep 10" ] } ] } 

然后,当你使用F5运行命令时,你将能够击中断点

调试断点