在mac os x上构建oracle docker镜像失败,使用"此系统不符合交换空间的最低要求。"

时间:2017-03-09 13:23:34

标签: oracle docker

我在OS X上使用Docker Community Edition版本17.03.0-ce-mac2(15654)。

我正在使用these (official) oracle docker files

我使用oracle-xe-11.2.0-1.0.x86_64.rpm.zip作为我的安装二进制文件。

当我跑步时

:dockerfiles $ pwd
.../oracle/docker-images/OracleDatabase/dockerfiles

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

我收到此错误:

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

这上周工作了。我不记得当时我做了什么不同的事。

我需要做些什么来修复?

1 个答案:

答案 0 :(得分:6)

问题是支持os x上的docker的虚拟机的交换设置为1G。当我在this中找到“ramonpires”答案时,它向我明确表示我需要将交换添加到底层虚拟机。那篇文章中的说明让我大部分都在那里,但我不得不添加最后一步才能让它发挥作用。所以,完整的解决方案:

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

free -m

这告诉您可用的交换量。检查它是否小于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

链接到解决方案中缺少最后一行。现在运行

free -m

确保您有超过2G的交换,然后重新运行

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