Docker環境で起きたCannot allocate memoryのエラー解決


概要

Docker環境に下記のようなメモリ不足のエラーが起きました。
その原因と解決策を共有します。

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 61079552) (tried to allocate 135168 bytes)
(省略)

再現環境

  • MacBook Pro
    バージョン : 11.2
    チップ : Apple M1

  • Docker Desktop for Mac
    バージョン : 3.3.1
    その他設定

  • php.ini
    memory_limit : 1280M

原因

M1 MacでDocker(3.3.1)を使うとメモリリークをしてしまうバグがあり、
負荷が高い処理をすると止まってしまうとのことです。
Memory Leak on M1 Macs

解決策

Docker Desktop for M1を使い、Dockerのバージョンが3.1.0になったことで解決いたしました。