При создании образа Docker есть несколько компиляций сценариев 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
Но при строительстве то же самое .cpp
Код на хост-машине, он работает нормально.
После некоторой проверки сообщение об ошибке похоже на то, которое люди получают на Raspberry Pi, https://www.bitpi.co/2015/02/11/how-to-change-raspberry-pis-swapfile-size-on-rasbian/
И после еще одного поиска в Google, этот пост на Mac форум Говорит, что:
Файлы подкачки создаются динамически по мере необходимости, пока диск не будет
переполнен, или ядру не хватает табличного пространства страницы. Я не думаю что ты
может изменить пределы табличного пространства страницы в ядре Mac OS X. я имею
ничего не видел за все годы, что я использую OS X.
Есть ли способ увеличить пространство подкачки для сборки Docker на Mac OS?
Если нет, как еще можно преодолеть ошибку «исчерпана виртуальная память» при создании образа Docker?
Это не кажется тривиальным, чтобы сделать с XHyve.
Как указано в этой теме
Я думаю, что размер виртуальной машины по умолчанию составляет 16 ГБ. У меня не хватало места подкачки даже после увеличения памяти на ВМ до 16 ГБ.
Проверьте, будет ли метод, используемый для виртуальной машины VirtualBox, применяться в 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.
mkswap
здесь также видно или в docker-root-xhyve/contrib/makehdd/makehdd.sh
.
Поскольку у вас достаточно свободной памяти на вашем хосте, я рекомендую вам выделить больше памяти для виртуальной машины Docker, которая находится позади.
Как указано Вот:
Как я вижу, вы работаете в OSX, которая запускает Docker через виртуальную машину Linux. Настройте максимальный объем памяти, щелкнув значок кита на панели задач. По умолчанию 2G.
Для дополнительной информации: https://docs.docker.com/docker-for-mac/#memory