docker上のphpコンテナでcomposer installしたら、メモリ不足で落ちた話
はじめに
docker上でlaravelの開発していて、必要なライブラリをcomposerでインストールしようとしたら下記のエラーが出て詰まった、、、
↓エラーメッセージ
Using version ^4.3 for laravel/socialite
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer.phar/src/Composer/DependencyResolver/Solver.php on line 223
原因調査
コンテナに入って、以下のコマンドを実行
$ php -r 'phpinfo();' | grep memory_limit
$ memory_limit => 128M => 128M
確かにデフォルトのphpのメモリが少ない、、、
ちなみに -r は <?php を略したもので、
コマンドライン上でphpのプログラムを実行するためのオプションです!
↓参照元 phpコマンドのオプション
https://www.php.net/manual/ja/features.commandline.options.php
対処方法
- phpのコンテナのdockerファイルに以下を追加
COPY php.ini /usr/local/etc/php/
- php.iniをdockerファイルのディレクトリに作成
memory_limit = -1
-1は上限なしという意味
- コンテナを再起動し中に入ってメモリを確認する
$ php -r 'phpinfo();' | grep memory_limit
$ memory_limit => -1 => -1
php.iniの設定に切り替わってる〜!
ナイスですね〜〜〜と全裸の監督から聞こえてきそうです!
結果
もう一度composer installしたら、、、
Package manifest generated successfully
無事インストールできました!マーベラス!
Author And Source
この問題について(docker上のphpコンテナでcomposer installしたら、メモリ不足で落ちた話), 我々は、より多くの情報をここで見つけました https://qiita.com/K-taiga/items/6319077e414ac8e4d4b3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .