From 439e91a069e0d1b4c6f6fa2afe2e1ffce4733799 Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Tue, 31 Mar 2015 22:38:04 +0200 Subject: [PATCH 1/3] Set important postgres settings in docker-entrypoint.sh --- 9.4/docker-entrypoint.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/9.4/docker-entrypoint.sh b/9.4/docker-entrypoint.sh index 27c98d2147..d53e345478 100755 --- a/9.4/docker-entrypoint.sh +++ b/9.4/docker-entrypoint.sh @@ -1,6 +1,12 @@ #!/bin/bash set -e +function alter_system { + if [ ! -z "$2" -a "$2" != " " ]; then + sed -ri "s/^#?($1\s*=\s*)\S+/\1'$2'/" "$PGDATA"/postgresql.conf + fi +} + if [ "$1" = 'postgres' ]; then chown -R postgres "$PGDATA" @@ -9,9 +15,15 @@ if [ "$1" = 'postgres' ]; then if [ -z "$(ls -A "$PGDATA")" ]; then gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - + + alter_system "listen_addresses" "*" + alter_system "shared_buffers" $POSTGRES_SHARED_BUFFERS + alter_system "max_connections" $POSTGRES_MAX_CONNECTIONS + alter_system "wal_level" $POSTGRES_WAL_LEVEL + alter_system "work_mem" $POSTGRES_WORK_MEM + alter_system "effective_cache_size" $POSTGRES_EFFECTIVE_CACHE_SIZE + alter_system "wal_buffers" $POSTGRES_WAL_BUFFERS + # check password first so we can ouptut the warning before postgres # messes it up if [ "$POSTGRES_PASSWORD" ]; then From a86de7d3af74c5174321ab799f33b820fe41a460 Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Tue, 31 Mar 2015 23:21:15 +0200 Subject: [PATCH 2/3] Use generic prefix POSTGRES_CONF for postgres settings --- 9.4/docker-entrypoint.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/9.4/docker-entrypoint.sh b/9.4/docker-entrypoint.sh index d53e345478..0765c0cc31 100755 --- a/9.4/docker-entrypoint.sh +++ b/9.4/docker-entrypoint.sh @@ -17,12 +17,14 @@ if [ "$1" = 'postgres' ]; then gosu postgres initdb alter_system "listen_addresses" "*" - alter_system "shared_buffers" $POSTGRES_SHARED_BUFFERS - alter_system "max_connections" $POSTGRES_MAX_CONNECTIONS - alter_system "wal_level" $POSTGRES_WAL_LEVEL - alter_system "work_mem" $POSTGRES_WORK_MEM - alter_system "effective_cache_size" $POSTGRES_EFFECTIVE_CACHE_SIZE - alter_system "wal_buffers" $POSTGRES_WAL_BUFFERS + + conf_prefix="POSTGRES_CONF_" + for env_name in $(env | cut -d= -f1 | grep "$conf_prefix.*"); do + value=$env_name + setting_name=${env_name#$conf_prefix} + setting_name=${setting_name,,} + alter_system $setting_name ${!value} + done # check password first so we can ouptut the warning before postgres # messes it up From 00d7092de6865dc175f168694acb8f85b7064f7e Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Wed, 1 Apr 2015 01:11:25 +0200 Subject: [PATCH 3/3] Better env var expansion and replaced spaces with tabs --- 9.4/docker-entrypoint.sh | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/9.4/docker-entrypoint.sh b/9.4/docker-entrypoint.sh index 0765c0cc31..e7ada0516d 100755 --- a/9.4/docker-entrypoint.sh +++ b/9.4/docker-entrypoint.sh @@ -2,9 +2,9 @@ set -e function alter_system { - if [ ! -z "$2" -a "$2" != " " ]; then - sed -ri "s/^#?($1\s*=\s*)\S+/\1'$2'/" "$PGDATA"/postgresql.conf - fi + if [ ! -z "$2" -a "$2" != " " ]; then + sed -ri "s/^#?($1\s*=\s*)\S+/\1'$2'/" "$PGDATA"/postgresql.conf + fi } if [ "$1" = 'postgres' ]; then @@ -16,15 +16,14 @@ if [ "$1" = 'postgres' ]; then if [ -z "$(ls -A "$PGDATA")" ]; then gosu postgres initdb - alter_system "listen_addresses" "*" + alter_system "listen_addresses" "*" - conf_prefix="POSTGRES_CONF_" - for env_name in $(env | cut -d= -f1 | grep "$conf_prefix.*"); do - value=$env_name - setting_name=${env_name#$conf_prefix} - setting_name=${setting_name,,} - alter_system $setting_name ${!value} - done + for env_name in ${!POSTGRES_CONF_*}; do + value=$env_name + setting_name=${env_name#"POSTGRES_CONF_"} + setting_name=${setting_name,,} + alter_system $setting_name ${!value} + done # check password first so we can ouptut the warning before postgres # messes it up