皆さんこんにちは。tyamahoriです。Docker for Mac使って開発してますか?遅くてキレ散らかしてませんか。。?
そんなあなたに朗報です。
2021年1月、tyamahoriはDocker for Mac が遅い問題に立ち向かいました。LaravelのサンプルプロジェクトをGitHubにあげておりますので見てください。
vendorディレクトリをそのままマウントしない!
composer install したら、vendorディレクトリができます。これをコンテナにマウントするさいに一工夫必要です。
じゃあどうするか?
ローカル開発だと、 docker-composeをほとんどの場合使うと思います。その際には、volumesを使うようにして、Macローカルにファイルを置かないようにします。
落とし穴。。
ただ、ローカルにvendorディレクトリがないと、PhpStormなどで補完が効きません。。いくらスピードが速くなるといえ、補完が聞かないと意味ないですよね。。。?
さらなる一工夫
コンテナ内でcomposerインストールをしたあとに、vendorディレクトリをMacのローカルに持ってきます。docker cp
のコマンドがあるので、それを使って、コンテナないから、Macローカルにディレクトリをコピーします!
細かいところ
じゃあ、いつのタイミングでdocker cp
やるのか? 新しくcomposer install でなにか追加した場合どうするのか。。などなどあります。そういうときは、スクリプトを組んで、色々と試行錯誤をしましょう。サンプルプロジェクトにスクリプトを置いてありますので、参考にしてみてください。
我慢するところ
docker cp
でvendorディレクトリをMacローカルに持ってきたら、PhpStormはvendorディレクトリを読み込みます。その際にMacのファンがブンブン回るので、そこだけは我慢する必要があります。。
結論
本当に速くなるかはまず試してもらえればと思います。サンプルプロジェクトをクローンして、Docker for Macを使って、立ち上げて見てください!皆様のご感想お待ちしております!
GitHubでのプロジェクト