Skip to content

Commit 6d58978

Browse files
authored
Merge pull request docker-library#289 from infosiftr/var-run-postgresql
Adjust "/var/run/postgresql" permissions for arbitrary-user support
2 parents e7222bf + 54053ad commit 6d58978

24 files changed

+31
-27
lines changed

9.2/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

9.2/alpine/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ RUN set -ex \
161161
# make the sample config easier to munge (and "correct by default")
162162
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
163163

164-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
164+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
165165

166166
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
167167
ENV PGDATA /var/lib/postgresql/data

9.2/alpine/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.2/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.3/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

9.3/alpine/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ RUN set -ex \
161161
# make the sample config easier to munge (and "correct by default")
162162
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
163163

164-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
164+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
165165

166166
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
167167
ENV PGDATA /var/lib/postgresql/data

9.3/alpine/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.3/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.4/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

9.4/alpine/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ RUN set -ex \
134134
# make the sample config easier to munge (and "correct by default")
135135
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
136136

137-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
137+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
138138

139139
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
140140
ENV PGDATA /var/lib/postgresql/data

9.4/alpine/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.4/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.5/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

9.5/alpine/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ RUN set -ex \
134134
# make the sample config easier to munge (and "correct by default")
135135
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
136136

137-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
137+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
138138

139139
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
140140
ENV PGDATA /var/lib/postgresql/data

9.5/alpine/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.5/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.6/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

9.6/alpine/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ RUN set -ex \
134134
# make the sample config easier to munge (and "correct by default")
135135
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
136136

137-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
137+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
138138

139139
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
140140
ENV PGDATA /var/lib/postgresql/data

9.6/alpine/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

9.6/docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

Dockerfile-alpine.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ RUN set -ex \
136136
# make the sample config easier to munge (and "correct by default")
137137
RUN sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/local/share/postgresql/postgresql.conf.sample
138138

139-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
139+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
140140

141141
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
142142
ENV PGDATA /var/lib/postgresql/data

Dockerfile-debian.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ RUN mv -v /usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample /usr/share/post
5454
&& ln -sv ../postgresql.conf.sample /usr/share/postgresql/$PG_MAJOR/ \
5555
&& sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample
5656

57-
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod g+s /var/run/postgresql
57+
RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql
5858

5959
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
6060
ENV PGDATA /var/lib/postgresql/data

docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3535

3636
mkdir -p /var/run/postgresql
3737
chown -R postgres /var/run/postgresql
38-
chmod g+s /var/run/postgresql
38+
chmod 775 /var/run/postgresql
3939

4040
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
4141
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then

update.sh

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,21 @@ for version in "${versions[@]}"; do
4646
case "$version" in
4747
9.2|9.3)
4848
uuidConfigFlag='--with-ossp-uuid'
49-
sed -i 's/%%OSSP_UUID_ENV_VARS%%/ENV OSSP_UUID_VERSION '"$osspUuidVersion"'\nENV OSSP_UUID_SHA256 '"$osspUuidHash"'\n/' "$version/$variant/Dockerfile"
50-
sed -i $'/%%INSTALL_OSSP_UUID%%/ {r ossp-uuid.template\n d}' "$version/$variant/Dockerfile"
49+
sed -i \
50+
-e 's/%%OSSP_UUID_ENV_VARS%%/ENV OSSP_UUID_VERSION '"$osspUuidVersion"'\nENV OSSP_UUID_SHA256 '"$osspUuidHash"'\n/' \
51+
-e $'/%%INSTALL_OSSP_UUID%%/ {r ossp-uuid.template\n d}' \
52+
"$version/$variant/Dockerfile"
5153

5254
# configure: WARNING: unrecognized options: --enable-tap-tests
5355
sed -i '/--enable-tap-tests/d' "$version/$variant/Dockerfile"
5456
;;
5557

5658
*)
5759
uuidConfigFlag='--with-uuid=e2fs'
58-
sed -i '/%%OSSP_UUID_ENV_VARS%%/d' "$version/$variant/Dockerfile"
59-
sed -i '/%%INSTALL_OSSP_UUID%%/d' "$version/$variant/Dockerfile"
60+
sed -i \
61+
-e '/%%OSSP_UUID_ENV_VARS%%/d' \
62+
-e '/%%INSTALL_OSSP_UUID%%/d' \
63+
"$version/$variant/Dockerfile"
6064
;;
6165
esac
6266
sed -i 's/%%UUID_CONFIG_FLAG%%/'"$uuidConfigFlag"'/' "$version/$variant/Dockerfile"

0 commit comments

Comments
 (0)