如何配置VS Code来调试无业游民的容器中的代码?

时间:2019-08-07 00:24:35

标签: debugging visual-studio-code vagrant pyramid

我正在开发一个新的python / pyramid Web应用程序,但是我很难设置VS Code来调试一个无所事事的容器中的python代码。显然,这对于pycharm是可行的,但是我更喜欢使用VS Code。远程调试文档并没有太大帮助。如果有人有经验或有关于如何执行此操作的指示,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

我的环境

Windows 10,我正在Vagrant的Virtualbox中运行Ubuntu 16.04。在我执行vagrant up以启动Virtualbox / Ubuntu之后,Vagrant提供的消息包括SSH用户名和SSH地址(在我的情况下分别为vagrant127.0.0.1:2222)。确保您没有设置腻子以外的其他SSH 客户端(我有Openssh-它在Windows商店中可用,通常安装在C:\ Windows \ System32 \ OpenSSH \ ssh.exe)。 / p>

首先,将 Remote Development 扩展安装到VS Code中。然后按F1,键入 remote 以显示远程开发选择,然后选择 Remote-SSH:连接到主机...

问题

Vagrant默认将端口22转发到2222,这对于VS Code来说似乎是一个问题。我可以使用git-bash并在Windows命令行(使用Openssh)和SSH用户名和地址(如上)通过键入ssh vagrant@127.0.0.1 -p 2222来进入Virtualbox / Vagrant罚款(注意,ssh vagrant@127.0.0.1:2222不会工作)。但是,如果您在VS Code中键入此命令以连接到主机,则它将无法正常工作-当使用-p指定端口时,它将无法连接。

解决方案

如果将Virtualbox与Vagrant一​​起使用,请打开VirtualBox GUI并打开正在运行的VM的设置。单击网络项,然后单击适当的适配器。单击高级,然后单击端口转发按钮。将2222更改为22(即,您只是将端口22转发至22-您可以使用config.vm.network "forwarded_port", guest: 22, host: 22将更改永久保存在Vagrantfile中),然后退出设置。

现在连接...

在更改端口转发以使Virtualbox侦听默认的SSH端口22之后,只需使用ssh vagrant@127.0.0.1就可以从VS Code连接。

还有一件事...

在VS Code中,按F1键,输入 remote ,然后选择 Remote-SSH:Settings 。在远程设置的底部,打开显示登录终端。 (您将在其中输入密码以完成SSH登录(默认密码为 vagrant ])。我尚未为基于密钥的登录设置任何东西。也许我会在回答时更新此答案。

后记

目前看来,设置remote debugging仍然很麻烦。