我想从我的 Windows 主机调试我的 Java 应用程序在 Docker 容器上的工作。此外,该容器正在 VirtualBox VM 上运行。我可以使用 Visual Studio Code (VSC) 的远程 SSH 插件远程连接到我在 VM 中的 java 项目文件夹。但是,我没有找到在我的 Windows 主机上从 VSC 调试容器中运行的 java 应用程序的方法。
我还没有尝试,但会有一个解决方案。例如,VSC 可以使用 SSH 连接我的虚拟机,以便在连接后,VSC 可以调试 java 应用程序。对于调试,java 应用程序的 dockerfile 也应该配置为启用远程调试。
是否有任何确切的解决方案或插件支持从主机(在我的情况下为 windows 主机)远程调试在远程主机 docker 容器上运行的任何类型的应用程序(在我的情况下为 java 应用程序)(在我的情况下是运行在 VM 上的 docker 容器) ? 我问这个问题是为了视觉工作室代码。
编辑:
我用相同的概念但两种不同的方式解决了我的问题。
在VSC中,为了调试,应该有launch.json,它看起来像我的情况
{ "type": "chrome", "request": "launch", "name": "Launch Chrome against VM", "url": "http://192.168.56.101:9000", "webRoot": "${workspaceFolder}" }
这个9000端口由 VM 中的容器公开。这个192.168.56.101 ip 地址属于 VM。
通过配置 VirtualBox 端口转发,例如将主机 9000 端口转发到 VM 9000 端口。因此,我们应该根据 VM 配置来配置launch.json ,例如
{ "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", "url": "http://localhost:9000", "webRoot": "${workspaceFolder}" }
此外,launch.json 是为 react 调试配置的,可能会针对其他技术进行更改。