dockerbuild设内存不足,但似乎有足够的内存可用

我正在使用docker容器来构buildelixir / phoenix应用程序。 这已经工作了一段时间了,但最近它停止工作,错误总是与缺乏记忆有关。

例如,最频繁的故障点是在Elixir(Dockerfile中最繁重的任务)的mix compile任务期间,崩溃的错误:

 eheap_alloc: Cannot allocate 147852528 bytes of memory (of type "old_heap"). Crash dump is being written to: erl_crash.dump...done 

有时它可能能够完成这一步,但是在后面的步骤中会再次失败,如编译前端代码的brunch build 。 有时候,在其他一些步骤没有具体的错误信息,只是说:

 Killed 

当发生这种情况时,我可以轻松地检查htop ,看到我使用的是htop或4GB的RAM,总计16GB,所以完全没有物理RAM。

经过一番挖掘,我发现, sudo sysctl vm.overcommit_memory=1可以帮助,但没有运气那里。

我的另一台运行Arch Linux的计算机运行得很好,而这台计算机运行Ubuntu 16.04