windowsのdockerでローカルディレクトリをマウントした際に処理が遅くなる原因と解決方法

#トラブル
writtdden by KashiwakuraKazuki

どうも柏倉です。

最近4歳の娘が急に逆上がりをしだして天才かもしれないと思い始めたバカ親です。
ということで、なんかwindowsのdockerでweb開発の環境作って作業してたらページの読み込み速度遅いなぁって思ったりしたことありませんか?
ちょっと環境を変えるだけで、簡単に爆速になるのでその話をしたいと思います。

そもそも、なぜ遅いのか?

じゃあ、そもそもなぜ遅くなってしまうのか?っていう話なんですが、それはソースの保存しているディレクトリをcontainer側がマウントしているからです。
多くの開発者はwindows側でソースを管理し、エディタなどwindowsのアプリを使用しているはずです。
しかし、ここで問題が発生します。
それはLinuxのファイルシステムとWindowsのファイルシステムが違うため、変換する作業が発生してしまうことです。
その変換がとにかく重い。

どうすればいいのか?

じゃあ、どうすれば解決するのか?
それはWindowsのサブシステムのWSL2上にソースをおいて、ファイルシステムをLinuxと同じものにすればいいのです。
そうすることで、変換する作業がなくなり、処理が爆速になります。

WSL2上にソースを置く弊害

先ほどファイルシステムの変換で処理が重くなる話をしましたが、dockerだけではありません。
それはwindows上で動いているツールにも同じことが言えます。
たとえば、gitの管理でsourceTreeを使おうとすると処理がとても遅くなってしまいます。
なので、このような場合はvscodeのgit管理を行う拡張システム等と使うことをお勧めします。

まとめ

いかがでしたでしょうか?
たった数秒の遅さでも開発をしていて、頻繁にページの更新をしていると結構なストレスになってくるので、今回の記事を元によければ開発環境の見直しをしてみてください。

過去に下記のような記事も投稿していますので、よかったらご覧ください。
VScodeでメモを取るときにMarkdownって使ってますか?
dockerにamazon linux 2023を入れてnginx + php-fpm + Laravel の環境を作ってみた
cssだけでスクロールに追従してくるメニューを作る
最後まで見ていただいてありがとうございました。
また次の記事を投稿したときは宜しくお願いします。

Favorite