From 9e6cba37e8ac6c415ddd0210ac8193bdc37854a8 Mon Sep 17 00:00:00 2001 From: Sean Fern Date: Thu, 13 Sep 2018 12:03:45 -0400 Subject: [PATCH] Add POSTGRES_SETUP_ARGS for setup configuration Set the POSTGRES_SETUP_ARGS environment variable to alter configuration during setup. Useful for settings like "max_wal_size=4GB" and "fsync=off" when loading initial data. Example pointing at a config file: POSTGRES_SETUP_ARGS='-o "-c config_file=/etc/postgresql/setup.conf"' --- 10/alpine/docker-entrypoint.sh | 10 ++++++---- 10/docker-entrypoint.sh | 10 ++++++---- 11/alpine/docker-entrypoint.sh | 10 ++++++---- 11/docker-entrypoint.sh | 10 ++++++---- 9.3/alpine/docker-entrypoint.sh | 10 ++++++---- 9.3/docker-entrypoint.sh | 10 ++++++---- 9.4/alpine/docker-entrypoint.sh | 10 ++++++---- 9.4/docker-entrypoint.sh | 10 ++++++---- 9.5/alpine/docker-entrypoint.sh | 10 ++++++---- 9.5/docker-entrypoint.sh | 10 ++++++---- 9.6/alpine/docker-entrypoint.sh | 10 ++++++---- 9.6/docker-entrypoint.sh | 10 ++++++---- docker-entrypoint.sh | 10 ++++++---- 13 files changed, 78 insertions(+), 52 deletions(-) diff --git a/10/alpine/docker-entrypoint.sh b/10/alpine/docker-entrypoint.sh index 93cfeeee75..8075b7f671 100755 --- a/10/alpine/docker-entrypoint.sh +++ b/10/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/10/docker-entrypoint.sh b/10/docker-entrypoint.sh index 4b475f999f..141b926e65 100755 --- a/10/docker-entrypoint.sh +++ b/10/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/11/alpine/docker-entrypoint.sh b/11/alpine/docker-entrypoint.sh index 93cfeeee75..8075b7f671 100755 --- a/11/alpine/docker-entrypoint.sh +++ b/11/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/11/docker-entrypoint.sh b/11/docker-entrypoint.sh index 4b475f999f..141b926e65 100755 --- a/11/docker-entrypoint.sh +++ b/11/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.3/alpine/docker-entrypoint.sh b/9.3/alpine/docker-entrypoint.sh index 5e7ba0e7cb..7927e23284 100755 --- a/9.3/alpine/docker-entrypoint.sh +++ b/9.3/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.3/docker-entrypoint.sh b/9.3/docker-entrypoint.sh index b963b3d9f1..2595117226 100755 --- a/9.3/docker-entrypoint.sh +++ b/9.3/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.4/alpine/docker-entrypoint.sh b/9.4/alpine/docker-entrypoint.sh index 5e7ba0e7cb..7927e23284 100755 --- a/9.4/alpine/docker-entrypoint.sh +++ b/9.4/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.4/docker-entrypoint.sh b/9.4/docker-entrypoint.sh index b963b3d9f1..2595117226 100755 --- a/9.4/docker-entrypoint.sh +++ b/9.4/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.5/alpine/docker-entrypoint.sh b/9.5/alpine/docker-entrypoint.sh index 5e7ba0e7cb..7927e23284 100755 --- a/9.5/alpine/docker-entrypoint.sh +++ b/9.5/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.5/docker-entrypoint.sh b/9.5/docker-entrypoint.sh index b963b3d9f1..2595117226 100755 --- a/9.5/docker-entrypoint.sh +++ b/9.5/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.6/alpine/docker-entrypoint.sh b/9.6/alpine/docker-entrypoint.sh index 5e7ba0e7cb..7927e23284 100755 --- a/9.6/alpine/docker-entrypoint.sh +++ b/9.6/alpine/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/9.6/docker-entrypoint.sh b/9.6/docker-entrypoint.sh index b963b3d9f1..2595117226 100755 --- a/9.6/docker-entrypoint.sh +++ b/9.6/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER" diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 4b475f999f..141b926e65 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -110,10 +110,12 @@ if [ "$1" = 'postgres' ]; then # internal start of server in order to allow set-up using psql-client # does not listen on external TCP/IP and waits until start finishes - PGUSER="${PGUSER:-$POSTGRES_USER}" \ - pg_ctl -D "$PGDATA" \ - -o "-c listen_addresses=''" \ - -w start + file_env 'POSTGRES_SETUP_ARGS' + eval "PGUSER=\"${PGUSER:-$POSTGRES_USER}\" \ + pg_ctl -D \"$PGDATA\" \ + -o \"-c listen_addresses=''\" \ + $POSTGRES_SETUP_ARGS \ + -w start" file_env 'POSTGRES_DB' "$POSTGRES_USER"