Skip to content

Commit 8394b42

Browse files
committed
Allow use of docker-pre-entrypoint.d and docker-post-entrypoint.d
directories.
1 parent 186650b commit 8394b42

12 files changed

+183
-0
lines changed

9.2/alpine/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec su-exec postgres "$@"
153169
fi
154170

9.2/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec gosu postgres "$@"
153169
fi
154170

9.3/alpine/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec su-exec postgres "$@"
153169
fi
154170

9.3/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec gosu postgres "$@"
153169
fi
154170

9.4/alpine/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec su-exec postgres "$@"
153169
fi
154170

9.4/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec gosu postgres "$@"
153169
fi
154170

9.5/alpine/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec su-exec postgres "$@"
153169
fi
154170

9.5/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec gosu postgres "$@"
153169
fi
154170

9.6/alpine/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec su-exec postgres "$@"
153169
fi
154170

9.6/docker-entrypoint.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22
set -e
3+
shopt -s nullglob
4+
35

46
# usage: file_env VAR [DEFAULT]
57
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
@@ -36,6 +38,13 @@ if [ "${1:0:1}" = '-' ]; then
3638
fi
3739

3840
if [ "$1" = 'postgres' ]; then
41+
for x in /docker-pre-entrypoint.d/*; do
42+
if [ -x "${x}" ]; then
43+
echo "-----> Running ${x}"
44+
"${x}"
45+
fi
46+
done
47+
3948
mkdir -p "$PGDATA"
4049
chmod 700 "$PGDATA"
4150
chown -R postgres "$PGDATA"
@@ -149,6 +158,13 @@ EOF
149158
echo
150159
fi
151160

161+
for x in /docker-post-entrypoint.d/*; do
162+
if [ -x "${x}" ]; then
163+
echo "-----> Running ${x}"
164+
"${x}"
165+
fi
166+
done
167+
152168
exec gosu postgres "$@"
153169
fi
154170

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ The following changes are incorporated:
1717
`psql` command. (Only in the debian-based images)
1818
- The suggestions for postgresql.conf taken from Christophe Pettus's excellent
1919
talk at https://www.youtube.com/watch?v=jqmdujimzfq are included.
20+
- If any executable scripts are found in `/docker-pre-entrypoint.d`, then those
21+
scripts will be executed before initializing or starting the database.
22+
If any executable scripts are found in `/docker-pre-entrypoint.d`, then those
23+
scripts will be executed immediately before starting the database. These
24+
directories are different from the standard `/docker-entrypoint-initdb.d` in
25+
that that directory will only be processed when the database did not already
26+
exist and is getting initialized.
2027

2128
The images are on docker hub at https://hub.docker.com/r/tbeadle/postgres/
2229

0 commit comments

Comments
 (0)