9

I'm exploring the new set extensions called VSCode Remote Pack and I want to connect to a Vagrant container using the Remote Container extension. Using a Windows 10 OS, how could I do that?

I tried the extension but it requests me to have Docker installed, what I suppose from that is that it only works for Docker containers. But I wonder if somebody have already managed to connect to a Vagrant box.

This are the docs from the extension: https://code.visualstudio.com/docs/remote/containers

carlosabcs
  • 321
  • 3
  • 12

2 Answers2

9

VS Code Remote containers currently only support Docker (its implementation executes docker commands). Please open a feature request if you would like to see other tools supported.

As an alternative, you could try using Remote SSH to connect to vagrant containers. That should work but will require some extra container setup

Matt Bierner
  • 37,231
  • 8
  • 113
  • 148
  • 1
    You're right! Actually, it was pretty easy to connect using `Remote SSH` :D – carlosabcs May 04 '19 at 00:25
  • 4
    @CarlosCórdovaS. Can you explain how you did this? I'm having trouble with the user@hostname step. Not sure where I get these values from. – davidatthepark Aug 12 '19 at 22:08
  • Dito as above. I can SSH into the server, but not sure how to connect to a remote container. – José Bayoán Santiago Calderón Sep 17 '19 at 03:01
  • 10
    @davidatthepark You get a ssh config from `vagrant ssh-config` and put it to the config file VSCode uses by `F1 -> Remote-SSH: Open configuration File...` The vagrant container should appear in the `F1 -> Remote-SSH: Connect to Host...` list. – MnZrK Oct 28 '19 at 10:47
  • 1
    So once you have connected to a vagrant VM, how do you attach a debugger to a Docker container inside said VM? – Dean Kayton Mar 15 '21 at 08:11
3

Sorry for updating this so late.

The solution was pretty simple, as @MnZrk commented, what it needs to be done for setting up the connection is the following:

  • Run vagrant ssh-config > some-file.txt. This will generate a file with the configuration to run using SSH. Here an example of that file:
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/User/project/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL
  ForwardAgent yes
  ForwardX11 yes

Notice that the host name is default, you could rename it to whatever you want so you could identify it more easily.

  • Copy the content of some-file.txt inside your SSH configuration file. This file could be edit directly from vscode by pressing F1 and writing Remote-SSH: Open Configuration File..., then you select the file you use for ssh configuration. After that file opens, just copy the content of some-file.txt there.

  • Finally, just press again F1 and type Remote-SSH: Connect to Host..., choose the connection with the host name default or the want you wrote in the first step, and that's all.

carlosabcs
  • 321
  • 3
  • 12