WSL2上のDockerとVSCodeを組み合わせて使う方法
追記
普通にできました。下記ブログ参照してください。
tl;dr; まだ開発中っぽいです。
やりたいこと
WSL2がWindowsにやってきた。Docker DesktopもWSL2をバックエンドに動くらしい!おや、VSCodeのRemote-Containerという機能を使えばDocker Container内で開発ができるらしいな。
よし、 Docker Desktop w/ WSL2 を使って、VSCodeでナウい感じに開発だ!・・・と思い、以下のページを見る。
code.visualstudio.com code.visualstudio.com
さっそく、 WSL2(ディストロはUbuntu18.04)で、 code .
とたたき、 Ctrl-P
からの Remote-Container を探す。ない。
は?
そもそもドキュメントと違い、左下ではすでにWSLにVScodeがいることになっている。
仕方ない。WSL2のディレクトリをWindowsのExplorerから開く。 Remote-Containerがあったので、それを使って .devcontainer
を作成しコンテナーをビルドしてみる
謎のエラー。(スクショ忘れた)
\(^o^)/オワタ
ググる。絶対同じことやりたい人いるだろ。
なるほど。いっかいWSL2のコンソールでContainerを開始してからvscodeでそれにアタッチすればいいんだな!
。。。
できた。けど、なぜかプラグインがダウンロードできなかったりコレジャナイ感やばい。
Insiderとかだと↓が使えるのかな。よくわからんけど。
「超・達成思考」を読んだ
なんていうか、中身のない本だった。1350円は高い。
今更ながら「嫌われる勇気」を読んだ
本屋でこういう自己啓発系の本が置いてあるセクションに行くと、必ずと言っていいほどこれ置いてあるじゃないですか。ええい、認めましょう。ずーっと気になっていました。ということで読んでみました。
アドラー心理学なるものに関する本で、ある哲学者が悩める青年を徹底的に論破していくお話です。ふふ、困った人だ。(嘘です)
覚えておきたいこととしては、以下。
- 他者の課題と自分の課題は別物だから混同するな
- 過去にあった事象に意味づけするのは自分
- 「貢献感」を大事にするべき
- 自分がどう生きるかを選ぶのは自分
- 変えられないものを何とかするのではなく、変えられるものに目を向けるべき
- 今ここの人生を生きるべき
ともすると、頭がもっと良ければなーとか、もっとお金があればなーとか思ってしまう「ないものねだり」は時間の無駄なので、もっと今の時間を精一杯生きようと思いました。
WindowsのターミナルエミュレータはMobaXtermがいい、という話
皆さんはWindowsでのターミナルエミュレータは何を使っていますか?minttyとかconemuとか、最近だとMicrosoft謹製のWindows Terminal とか使っている人も多いのではないでしょうか。 www.microsoft.com
私は最近MobaXtermを使っています。以下のような要件があるからです。
これらの要件を満たせていたのが https://mobaxterm.mobatek.net/:MobaXterm でした。特にX serverが内蔵されているってのが良くて、別途VcXsrvとか入れなくていいんです!
X Serverいらなくていいなら、正直Windows Terminalが成熟すればそちらでもいいかなーという気分ではあります。Visual Studio Codeに期待。特にCode Hierarchy機能がほしい・・・
個人の雑多なメモ取りには何がいいか
雑多なメモをPCで取ることが多いが、あっちに書いてしまったりこっちに書いてしまったりとイマイチまとまらない。
evernote.com www.notion.so boostnote.io
あたりを使ってきたが、なんというか、ノートのとり方をアプリに決められてしまっているようで嫌になってしまう。
それぞれの製品で、個別にはとても便利なところがあるんだが、個人で使うにはオーバースペックすぎると思ってしまいます。
結局最近は妥協案として、GitHubのプライベートリポジトリにMarkdownでとにかく突っ込んでおいて、後で検索する、というやり方にしているけど、なんだか効率よくない気がする。
なにかいい方法はないだろうか。要件としては、
くらいかなぁ。Gitで管理できるのが少ない・・・あとでblameして、いつそのメモを書いたかを思い出したいときとかあると思うんだけどな
sshcodeが便利そう
前置き
最近WSL内にVSCodeをインストールして使っていたのですが、やはり動作が遅いのがどうしても気になっていました。
そういえば最近
ってのが話題になっていたなーと思い、いっそ適当なVPSを借りてブラウザ経由でVSCode動かしたほうが生産的かなーとか思って少しあさっていると、以下のプロダクトを見つけました。
GitHub - cdr/sshcode: Run VS Code on any server over SSH.
適当なLinuxを動かしているサーバを指定して、コマンドを実行するだけでcoder-serverのインストールから自動でやってくれて、over SSHでVScodeが動かせる?ということで、試してみました。
使い方
適当なVPSでLinuxが動いていて、SSHログインができることが条件だと思います。
今回は、AWS Lightsail上で動いているUbuntu 18.04のVPSを用意して試してみました。つなげるもとはWSLです。
- github.com から、バイナリを落としてきてWSL上のPATH通っている適当な場所に配置
sshcode -ssh-flags "-p <ポート番号> -i <秘密鍵の場所>" <user名>@<host名>
と実行- vscodeが立ち上がる
なんとこれだけで本当に動きました。どうもWindows側にChromeをインストールしていて、パスが通っていると勝手にそっちを使ってくれるらしく、まじで便利。動作も快適です。
セキュリティ面とかがよくわかっていないのですが、SSH tunnelingしている感じになっているのかな?そのあたりが安全なら、まじで私にとっては最強のソリューションかもしれないです。
VimからVisual Studio Code (VSCode) に移行した
普段はインフラエンジニアをやっているので、サーバにSSHして設定ファイルをVimでいじるみたいなことがままあります。
その延長線上で、プログラムのコードだったりとかもVimで書いていたのですが、正直 .vimrc
いじって頑張って補完とか出すのめんどいなーと思っていたこの頃でした。
(ぶっちゃけJavaとかはIntelliJ使っていたりいまいち統一感なかったですが)。
そんな中、なんの気無しに以下の記事を読んでいて、すごいなーと思う一方、「ここまで頑張ってやっとVSCodeと同様なの?」という気持ちが湧いてきてしまいました。 (記事の著者の方には申し訳ないですが・・・)
そんなわけで、VSCode をプログラミング用途で使い始めてみました。VSCode自体は昔から使っていたのですが、 Windows環境に入れていただけで、Windowsではそもそもプログラミングしないので、テキストエディタとしてしか使っていなかったです。
しかし、VSCodeをWSLの中で動かすことができると知り、試してみることにしました。
使っている環境は以下です。
もともとIntelliJもWSLの中で使っていたこともあり、多分動くだろうなーと思っていたのですが、なぜか今まで試していませんでした。
WSL(Ubuntu)には、以下の手順に従ってインストール。Snapでもインストールできるかもしれませんが、なんとなく試していません。
Running Visual Studio Code on Linux
インストール後はcode
と打てば起動します。簡単ですね・・・と思っていたら、なぜかWindows側のVSCodeが立ち上がってしまいました。
確認してみると、どうやら$PATH
がWindows側のVScodeを指している模様。以下のように、aliasを貼って回避しています。
alias code="/usr/bin/code"
(Windows側のバイナリがWSLからシームレスに実行できると、こういう弊害があるのか・・・)
aliasを貼ったあとは無事に動いています。以下、所見。
- いいところ
- 悪いところ