このGWで最高のWindowsでの開発環境を作るんだ!と息巻いておりましたが、MicrosoftさんがVSCodeのRemote Developmentプラグインを発表しました。正直なところ、以下のブログを読んでいただければもう話は終わりです。
連休最後なのでとりあえず試してみるかーと思って試してみました。
試してみる
現在のところは、このプラグイン自体がベータ版のため、VSCode Insiders版でしか動かないので、VSCode Insiders版をインストールしました。
とりあえず、vagrant up
した状態で、SSHの接続情報を出力させます。ユーザ名のところをusername
にしてますのでご注意ください。
PS > vagrant ssh-config Host default HostName 192.168.100.2 User vagrant Port 22 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile C:/Users/username/sources/github.com/patorash/ansible-provisioning-ubuntu-master/.vagrant/machines/default/hyperv/private_key IdentitiesOnly yes LogLevel FATAL
VSCodeでCtrl+Shift+Pでコマンドパレットを開き、Remote-SSH: Connect to Host...
を選択して接続先を表示します。ない場合、Configure SSH Hosts...
が表示されるので、それを選ぶと、SSHの接続先設定ファイルを選ばされるので、私はC:\User\username\.ssh\config
を指定し、上記の設定をコピペして保存しました。その後、再度Remote-SSH: Connect to Host...
を行い、defaultに対して接続をすると、新しいVSCodeのウィンドウが開き、Vagrant上で動くUbuntuに接続完了です。
あとはコマンドパレットからOpen Folder
でプロジェクトフォルダを開けばOK。
VSCodeのターミナルを開くと、接続先のUbuntuのターミナルが開きました。完璧です。
rails sして速度を計測してみる
VSCodeとは直接は関係ありませんが、SMBでの共有フォルダと、共有フォルダではないUbuntu上のディレクトリで、全く同じプロジェクトをrails s
してみました。springが効いた状態で、初回表示ではありませんのであしからず。何度かページを表示した平均です。
環境 | 時間 |
---|---|
共有なし | 0.9秒 |
共有あり(SMB) | 5秒 |
こうなってくると、Windowsからファイル共有せずに、VSCodeのRemote Developmentプラグインでファイル編集したほうがサクサク開発できそうです😊やっぱりLinux上でDockerを動かすと全然違うのだな…。
Windows & Vagrant & Hyper-Vでイケてる環境は?
- VSCode Insidersを入れてRemote Development プラグインを入れる
- VagrantでUbuntuなどを入れる
- 仮想スイッチを作る(内部)
- WinNAT設定を行う
- VMにIPを設定する
- フォルダ共有は不要
でいいんじゃないかと思います👍
やり方は前回のブログを参照のこと。
vagrantは必要?という気もしますが、VMへのSSH接続とか、プロビジョニングとかが容易になるので、使ってもいいんじゃないかなと思います。