Skip to content

Commit 123aedc

Browse files
authored
Merge pull request docker-library#224 from DanielDent/master
POSTGRES_XLOG_DIR to specify transaction log dir
2 parents 64e333f + 913bc48 commit 123aedc

11 files changed

+110
-0
lines changed

9.2/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec su-exec postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.2/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.3/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec su-exec postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.3/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.4/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec su-exec postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.4/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.5/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec su-exec postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.5/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.6/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec su-exec postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

9.6/docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

docker-entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
3737
chown -R postgres /var/run/postgresql
3838
chmod g+s /var/run/postgresql
3939

40+
# Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
41+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
42+
mkdir -p "$POSTGRES_INITDB_XLOGDIR"
43+
chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
44+
chmod 700 "$POSTGRES_INITDB_XLOGDIR"
45+
fi
46+
4047
exec gosu postgres "$BASH_SOURCE" "$@"
4148
fi
4249

@@ -48,6 +55,9 @@ if [ "$1" = 'postgres' ]; then
4855
# look specifically for PG_VERSION, as it is expected in the DB dir
4956
if [ ! -s "$PGDATA/PG_VERSION" ]; then
5057
file_env 'POSTGRES_INITDB_ARGS'
58+
if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
59+
export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
60+
fi
5161
eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
5262

5363
# check password first so we can output the warning before postgres

0 commit comments

Comments
 (0)