Edited at

docker-compose の mem_limit オプションが効かない

docker-compose (version:2) の mem_limit オプションが効かなかったので

解決策をメモ


やりたかったこと

Macでdocker-composeのPHPの開発環境を作成していますが

ApacheのDockerコンテナの中で comopser update を実行中に OOM Killer によってkillされしまう

なのでコンテナのメモリーリミットを増やして回避したかった。


試したこと

docker-compose.ymlmem_limit オプション(version2で使える)があるんですが、そこで指定します、例えばこんな感じで4Gにしたかった。

version: '2'

services:
apache:
mem_limit: '4096m'
build: ./apache
volumes:
- ./www:/var/www/html
environment:
VIRTUAL_HOST: sample.local.host

設定後、docker-compose down && docker-compose up -d して設定を反映させて、docker stats {container-name} を実行して確認すると。

$ docker stats {container-name}

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
a6418763c519 {container-name} 0.01% 14.87MiB / 1.952GiB 0.74% 928B / 0B 28MB / 8.19kB 11

あれ、設定が反映されてない。。。


解決策

MacのDockerの設定で制限してました。。。それだけ。。。気づくまでにめっちゃ時間かかったのでメモしときます。

スクリーンショット 2018-12-19 22.23.04.png