たるだめ

のんびりとなんか書きます

Windows WSL2ベースのDockerでビルドが遅い時にやった対処

Windows にて、Docker+WSL2+Gatsby で作成したサイトの起動が遅く困っていましたが、対処ができたので残しておきます。

対処

やったことは、ローカルのコード配置場所の変更です。 具体的には、以下の移動を行いました。

Windows(ホスト側) のディスク領域

WSL2 Linux ディストリビューションのディスク領域に配置

WSL2 の Linux ディストリビューションへのアクセス

エクスプローラで\\wsl$\〇〇と入力すとアクセスできます。 ○○ には Ubuntsu などのディストリビューション名が入ります。 a

ここ配下の任意の場所にソースコードの配置 をすれば OK です。

念のためソースコードはコピーではなく Clone で配置しました。

遅くなっていた理由

Docker 公式にはこのような記載がありました。

Linux コンテナ内にソースコードや他のデータを入れるには、Windows ファイルシステムよりも、Linux ファイルシステムでバインド・マウント(bind-mount)を使う Windows ホストからリモート操作するより、Linux ファイルシステム上でファイルをバインド・マウントするほうが、パフォーマンスがより優れる。

対処前は Win 側に配置していました。

開発リポジトリがまとめてあるディレクトリに普通においていたのですが、Docker の場合は分けたほうがいいですね。

対処後

yarn startごとに 5 分かそれ以上はかかっていたのが、速いと 30 秒程度で終わるようになったし、保存時にリビルドも走るようになりました 👏

参考