M1 Mac 出ちゃいましたが、 Windows で行なった開発環境構築のメモです。
1ヶ月くらい使ってみて問題なく使えているのでメモを残しておきます。
動機
ゲーム用に買ったものの使えておらず、眠らせとくのが勿体なかったので。
また、これまで使っていた Macbook が VSCode を使った開発で使い物にならないくらい重くなっていたため。
追記: 2021-03-24
Macbook Pro が業務利用が困難なほど重くなっていたのは、
主に 4K モニタを繋いでいたためでした。
環境
- OS: Windows 10 Home x64 (2004)
- CPU: Ryzen 7 3700X
用途
今のところ以下の用途で使ってます。
- VSCode
- Docker Image のビルド, コンテナの複数起動
- Next.js, TypeScript
- Laravel
YouTube の配信を複数窓開きながらでもさくさくで嬉しい。
VSCode の Bracket Pair Colorizer2
が全然重くないのも嬉しい。
やったこと
思い出しながら書いているので、時系列が合っていなかったり抜け漏れあるかもしれません。
- WSL2 で Ubuntu 入れる
-
apt update
して必要なパッケージを入れる。 - Docker Desktop 入れて WSL と繋げる。
-
.wslconfig
を設定。 - Homebrew (Linuxbrew) を入れて必要な物を入れる。
- VSCode で
Remote Development
入れて設定。- 拡張機能が WSL 側に入るようにする。
- 常に
Remote-WSL
で VSCode が起動するようにする。
-
~/.bashrc
,~/.bash_profile
等設定する。 - Windows にターミナル入れる。
- ひとまず Windows Terminal を使ってみてる。
- WSL2 から GUI アプリケーションを起動するために
VcXsrv
をインストール- Cypress などを起動できます。(
wsl-open
でxdg-open
を肩代わりする方法では駄目でした) - 参考: WSL2(Ubuntu18.04 LTS)をセットアップしてDocker(on Ubuntu)とGUIアプリを使う
- Cypress などを起動できます。(
.wslconfig
WSL がメモリを食いすぎないように上限を設けました。
ただ使用メモリが上限に達すると WSL がフリーズしたりハングアップするので、必要に応じて割当メモリを調整したりします。
また、 Windows からホスト名 localhost
で WSL にリクエストが飛ばせるようにしています。
[wsl2]
memory={任意の数値}GB
swap=0
localhostForwarding=true
問題が起きた時の対処
WSL が反応しない
コマンドプロンプトまたは PowerShell から以下のコマンドを実行して WSL を再起動。
wsl --terminate {LinuxDist名}
または
wsl --shutdown {LinuxDist名}
例:
wsl --shutdown Ubuntu
詳しくは wsl --help
参照。
上記で解決しない場合は Windows を再起動。
WSL で Docker が見つからなくなった
Windows 側で Docker Desktop を再起動。
または Windows を再起動。
localhost にアクセス出来なくなった
WSL を再起動。または Windows を再起動。
その他
- WSL 上で
npm install
した時に、完了まで時間が掛かったり稀にタイムアウトで失敗する事がある。 - タスクマネージャーのプロセス一覧の
Vmmem
が WSL らしい。 - Windows のエクスプローラ等から WSL にアクセスする際は
\\wsl$
を開く。