«виртуальная память исчерпана» при создании образа Docker

При создании образа 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?

1

Решение

Это не кажется тривиальным, чтобы сделать с 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.

2

Другие решения

Поскольку у вас достаточно свободной памяти на вашем хосте, я рекомендую вам выделить больше памяти для виртуальной машины Docker, которая находится позади.

Как указано Вот:

Как я вижу, вы работаете в OSX, которая запускает Docker через виртуальную машину Linux. Настройте максимальный объем памяти, щелкнув значок кита на панели задач. По умолчанию 2G.

Для дополнительной информации: https://docs.docker.com/docker-for-mac/#memory

введите описание изображения здесь

0

По вопросам рекламы [email protected]