Ao construir uma imagem Docker, existem algumas compilações de scripts C ++ e acabei com erros como:
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
Mas ao construir o mesmo .cpp
código na máquina host, ele funciona bem.
Após alguma verificação, a mensagem de erro parece ser semelhante à que as pessoas recebem em um Raspberry Pi, https://www.bitpi.co/2015/02/11/how-to-change-raspberry-pis-swapfile- tamanho-no-rasbian /
E depois de mais algumas pesquisas no Google, esta postagem no fórum do Mac diz que:
Os arquivos de troca são criados dinamicamente conforme necessário, até que o disco esteja cheio ou o kernel fique sem espaço de tabela de página. Não acho que você possa alterar os limites do espaço de tabela da página no kernel do Mac OS X. Não vi nada em todos os anos que uso o OS X.
Existe uma maneira de aumentar o espaço de troca para a construção do Docker no Mac OS?
Se não, de que outra forma pode ser feito para superar o erro "memória virtual esgotada" ao construir uma imagem Docker?
Isso não parece trivial para fazer com o XHyve.
Conforme declarado neste tópico
Acho que o tamanho padrão da VM é de 16 GB. Continuei ficando sem espaço de troca, mesmo depois de aumentar a memória RAM da VM para 16 GB.
Verifique se o método usado para uma VM VirtualBox se aplica ao XHyve: consulte " Como aumentar o espaço de troca disponível na máquina virtual 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
Verifique também esta configuração do Digital Ocean , novamente para testar em seu contexto XHyve.
mkswap
também é visto aqui ou em docker-root-xhyve/contrib/makehdd/makehdd.sh
.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras