どーも!
たかぽんです!
今回はdockerでcomposerを使った時、memory不足になってしまったので、それについてメモを残しておこうと思います!
composerでmemory不足になってしまう
では、筆者が体験したについて共有しておきます...!
composerに関連する処理で、筆者の場合は"composer require"を実行した際に以下のようなエラーがでてしまいました。
Fatal error: Allowed memory size of ****** bytes exhausted (tried to allocate **** bytes)
これは、割り当てられているPHPでの使用可能なメモリ量が不足しているためにこうなってしまっているんですね。
そのため、これが出た場合はそのメモリ量を増加させる必要があります。
phpの設定ファイルを編集する
phpの設定ファイルはphp.iniというファイルに書かれています。
そのため、dockerの場合、dockerコンテナの中にあるphp.iniを書き換えてあげればOKです。
イメージとしては以下のような形です。(php-fpmコンテナの場合)
(base) taka@Taka laradock % docker-compose exec php-fpm bash
root@56e3de7848b9:/work# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
root@56e3de7848b9:/work#
筆者のコンテナだと上記のように"/usr/local/etc/php/php.ini"にありそうです。
この"php.ini"をみてみると...?
root@56e3de7848b9:/work# cat /usr/local/etc/php/php.ini
...
...
...
post_max_size = 128M
memory_limit = 256M
error_reporting = E_ALL
...
...
...
root@56e3de7848b9:/work#
上記のような設定内容がでてきて、途中に以下の行があります。
memory_limit = 256M
ここが、メモリー容量の指定箇所になるので、ここを-1にします(無制限に使用可能に)。
composerの対応が完了したら念の為戻して完了です。
戻さないと何が起きる...!とか、具体的なことはいまいち理解できていないですが...、その環境を作成した人の意図がその数値に込められているのだとしたら、変えない方が無難かと思います...!
まとめ
さて、今回はcomposerを実行しようとした時のメモリー不足について解説しました...!
筆者の会社の環境だと頻繁に出てしまうんですよね...
ここら辺の知識も結構やんわりした感じなので、そのうちもっと理解したいなぁ...と...
それでわ!