构buildDocker镜像时的“虚拟内存耗尽”

在构buildDocker镜像时,有一些C ++脚本的汇编,而我最终得到的错误是:

src/amun/CMakeFiles/cpumode.dir/build.make:134: recipe for target 'src/amun/CMakeFiles/cpumode.dir/cpu/decoder/encoder_decoder_state.cpp.o' failed virtual memory exhausted: Cannot allocate memory 

但是当在主机上构build相同的.cpp代码时,它工作正常。


经过一番检查,错误信息似乎与人们在树莓派上得到的相似, https://www.bitpi.co/2015/02/11/how-to-change-raspberry-pis-swapfile-尺寸上rasbian /

经过一些更多的Googlesearch之后,在Mac论坛上这个post说:

根据需要dynamic创build交换文件,直到磁盘已满或内核用完页表空间。 我不认为你可以改变Mac OS X内核的页面空间限制。 我从来没有见过使用OS X的多年。

有没有办法来增加在Mac OS上构buildDocker的交换空间?

如果没有,在构buildDocker映像时还可以做些什么来克服“虚拟内存耗尽”错误?

对XHyve来说这似乎并不重要。
正如在这个线程中所述

我认为虚拟机的默认大小是16GB。 即使将虚拟机上的内存撞到了16GB,我仍然不能使用交换空间。

检查用于VirtualBox VM的方法是否适用于XHyve:请参阅“ 如何增加boot2docker虚拟机中的可用交换空间?

 boot2docker ssh export SWAPFILE=/mnt/sda1/swapfile sudo dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304 sudo mkswap $SWAPFILE sudo chmod 600 $SWAPFILE sudo swapon $SWAPFILE exit 

请检查此数字海洋设置 ,再次在您的XHyve上下文中进行testing。
也可以在这里或在docker-root-xhyve/contrib/makehdd/makehdd.sh

由于您的主机中有足够的可用内存,我build议您为后面的Docker虚拟机分配更多的内存。

如此处所述:

我可以看到你在OSX上,它通过Linux VM运行Docker。 configuration最大内存点击任务栏中的鲸鱼图标。 默认是2G。

有关更多信息: https : //docs.docker.com/docker-for-mac/#memory

在这里输入图像说明

Interesting Posts