l'image di oracle docker di costruzione su mac os x non riesce con "Questo sistema non soddisfa i requisiti minimi per lo spazio di swap".

Sto usando Docker Community Edition versione 17.03.0-ce-mac2 (15654) su OS X.

Sto utilizzando questi file (ufficiale) di oracle docker

Sto usando oracle-xe-11.2.0-1.0.x86_64.rpm.zip come binario di installazione.

Quando correre

:dockerfiles $ pwd .../oracle/docker-images/OracleDatabase/dockerfiles :dockerfiles $ ./buildDockerImage.sh -v 11.2.0.2 -x 

Ottengo questo errore:

 Archive: oracle-xe-11.2.0-1.0.x86_64.rpm.zip creating: Disk1/ creating: Disk1/upgrade/ inflating: Disk1/upgrade/gen_inst.sql creating: Disk1/response/ inflating: Disk1/response/xe.rsp inflating: Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm This system does not meet the minimum requirements for swap space. Based on the amount of physical memory available on the system, Oracle Database 11g Express Edition requires 2048 MB of swap space. This system has 1023 MB of swap space. Configure more swap space on the system and retry the installation. error: %pre(oracle-xe-11.2.0-1.0.x86_64) scriptlet failed, exit status 1 error: oracle-xe-11.2.0-1.0.x86_64: install failed Removing intermediate container 86bb92ebf0e5 

Questo ha funzionato la scorsa settimana. Non riesco a ricordare se ho fatto qualcosa di diverso allora.

Cosa devo fare per risolvere il problema?

Il problema è che la macchina virtuale che support il docker su os x ha swap impostato su 1G. Quando ho trovato "branchnpires" risposta in questo , mi ha reso chiaro che avevo bisogno di aggiungere lo swap a quello vm sottostante. Le istruzioni in quel post mi hanno fatto la maggior parte del modo, ma ho dovuto aggiungere un passo finale per farlo funzionare. Così, soluzione completa:

 screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty username:root password:[empty] close session:Ctrl+ad free -m 

Questo ti dice quanto lo swap è disponibile. Controllare che sia inferiore a 2G.

 dd if=/dev/zero of=/var/swap.file count=2000000 bs=1024 chmod go= /var/swap.file mkswap /var/swap.file echo "/var/swap.file swap swap defaults 0 0" >> /etc/fstab swapon -a 

L'ultima linea mancava dal collegamento alla soluzione. Ora correre

 free -m 

Per assicurarsi di avere più di 2G swap e quindi eseguire nuovamente

 :dockerfiles $ ./buildDockerImage.sh -v 11.2.0.2 -x