Mac上で Docker (docker-compose) で開発環境を作り、開発中の Laravel のアプリケーションに composer require
をしたら、中断されてしまいました
composer require ****/*****
(中略)
killed
composer が途中で終わってしまうといえば、メモリ不足が定石かなと思います。
会社の先輩からこのリンクを送ってもらい、疑惑が確信に変わりました。
[PHP] composer install が killed で失敗するときの原因と対処
https://webbibouroku.com/Blog/Article/composer-killed
PHP memory_limit の引き上げ
メモリ不足とわかったところで、まずDocker内で使っている php.ini
の memory_limit を増やしました。
どのくらい必要なのかわからなかったけど、とりあえず2GB(2048MB)にしました。
memory_limit = 2048M
設定変更後、 docker build して再起動
Docker for Mac のメモリ割り当てを増やす
Docker for Mac で指定しているDockerが利用できるリソースが、当初 2GBとなっていました。使っている MacBook Pro には 64GBものメモリを積んでいるので、ドドーンと 8GB まで増やしました。ここはマシンスペックとの相談かなと思います。
変更後、Dockerホストの再起動がかかりました。
解決!!
上記2点でメモリの設定を変更して、 composer require
が無事実行できました。
composer update
でも同様に大量のメモリが必要なので、同じような対応が必要になるかもしれません。