orchardup / docker-postgresql

Deprecated - use the official postgres image.
https://registry.hub.docker.com/_/postgres/
Apache License 2.0
103 stars 62 forks source link

Image does not work on ubuntu 14.04 (docker 0.9.1) #4

Closed kevwilde closed 10 years ago

kevwilde commented 10 years ago

Currently I have tested it on two different ubuntu 14.04 setups with the "docker.io" (verion 0.9.1) package installed.

Running the image from the docker index as indicated in the Readme immediately exits with no logs.

I forked the project and built the image myself and everything works fine. Side note: the official image works perfectly on a docker vps from digitalocean (13.10, docker 0.11.1).

kevwilde commented 10 years ago

Other differences between the two images:

There seems to be a disparity when su'ing to the postgres user:

$ docker run -i -t orchardup/postgresql /bin/bash
root@9abd1b3e9be9:/# sudo su - postgres
No directory, logging in with HOME=/
-su: /etc/profile: Permission denied
-su-4.2$ 

vs

docker run -i -t kevwilde/postgresql /bin/bash
root@385d11498119:/# sudo su - postgres
postgres@385d11498119:~$ 

I believe this is the cause of the problem.

Comparing the postgres user:

in orchardup/postgresql:

root@9abd1b3e9be9:/# finger postgres
Login: postgres                 Name: PostgreSQL administrator
Directory: /var/lib/postgresql          Shell: /bin/bash
Never logged in.
No mail.
No Plan.

in kevwilde/postgresql:

root@3c5c32d718ae:/# finger postgres
Login: postgres                 Name: PostgreSQL administrator
Directory: /var/lib/postgresql          Shell: /bin/bash
Never logged in.
No mail.
No Plan.

Other things I checked:

Finally, the difference is in the permissions of the /etc directory itself:

kevwilde/postgresql:

drwxr-xr-x  86 root root    4096 Jun  5 09:39 etc

orchardup/postgresql:

d--x--x---  77 root root    4096 Jun  5 09:31 etc

I think it might be related to this issue: dotcloud/docker#4068

kevwilde commented 10 years ago

It seems to be resolved by adding -s=devicemapper to the DOCKER_OPTS field (ref: https://stackoverflow.com/questions/20810555/ensure-that-docker-is-using-device-mapper-storage-backend)