尝试在ARM系统上运行arm32v7 / postgres:9.6 docker映像,并在dbinit期间遇到此错误。
running bootstrap script ... FATAL: could not create shared memory segment: Function not implemented
DETAIL: Failed system call was shmget(key=5432001, size=40, 03600).
我用普通图像和高山图像都尝试过,它们都具有相同的问题。
这是完整的日志:
$ docker run --rm --name pg-docker -e POSTGRES_PASSWORD=docker -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data arm32v7/postgres:9.6-alpine
docker0: port 1(vethf529e4e) entered blocking state
docker0: port 1(vethf529e4e) entered disabled state
device vethf529e4e entered promiscuous mode
IPv6: ADDRCONF(NETDEV_UP): vethf529e4e: link is not ready
IPVS: Creating netns size=912 id=13
eth0: renamed from veth3359a07
IPv6: ADDRCONF(NETDEV_CHANGE): vethf529e4e: link becomes ready
docker0: port 1(vethf529e4e) entered blocking state
docker0: port 1(vethf529e4e) entered forwarding state
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers ... 400kB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... FATAL: could not create shared memory segment: Function not implemented
DETAIL: Failed system call was shmget(key=5432001, size=40, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/data"
docker0: port 1(vethf529e4e) entered disabled state
veth3359a07: renamed from eth0
docker0: port 1(vethf529e4e) entered disabled state
device vethf529e4e left promiscuous mode
docker0: port 1(vethf529e4e) entered disabled state