Re: postgres and initdb not working inside docker

Feike Steenbergen <feikesteenbergen@gmail.com>

From: Feike Steenbergen <feikesteenbergen@gmail.com>
To: Roffild <roffild@hotmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Daniel Gustafsson <daniel@yesql.se>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2022-05-28T17:12:38Z
Lists: pgsql-hackers
On Sat, May 28, 2022, 18:35 Roffild <roffild@hotmail.com> wrote:

> But the volume mount has a limitation with chmod 755. I don't want to
> write the database directly to the container.

Using a $PGDATA subdirectory in a mounted Volume allows you to run with 0700
and also retain this limitation you mention. I don't believe this
limitation is a limitation
of Docker - AFAIK Docker uses the permissions from the Host Directory for
the Mount.

In my experience we have been using (since 2014?)  a subdirectory of the
mounted Volume
and run a statement similar to this on startup of your container, before
starting postgres/initdb or the like

install -o postgres -g postgres -d -m 0700 "${PGDATA}"

> The world has changed! And the old standards don't work...

There's enough people running Postgres in Docker containers in production
for almost a decade.
It does work!

Kind regards,

Feike Steenbergen