From 530e8f0194f573426c5873d04ef9cabaa7f93b85 Mon Sep 17 00:00:00 2001 From: Pan Luo Date: Fri, 6 May 2016 23:27:41 -0700 Subject: [PATCH] Fix #15, WAL in archive mode when backup is off WAL logs in archive mode will consume a lot more spaces and not useful when backup is off. This fix add ability to switch WAL logs mode based on the backup switch. --- db/docker-entrypoint1.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/db/docker-entrypoint1.sh b/db/docker-entrypoint1.sh index 7058d65..033a163 100755 --- a/db/docker-entrypoint1.sh +++ b/db/docker-entrypoint1.sh @@ -1,5 +1,17 @@ #!/bin/bash +# if wal backup is not enabled, use minimal wal logging to reduce disk space +: ${WAL_LEVEL:=minimal} +: ${ARCHIVE_MODE:=off} +# PGDATA is defined in upstream postgres dockerfile + +function update_conf () { + if [ -f $PGDATA/postgresql.conf ]; then + sed -i "s/wal_level =.*$/wal_level = $WAL_LEVEL/g" $PGDATA/postgresql.conf + sed -i "s/archive_mode =.*$/archive_mode = $ARCHIVE_MODE/g" $PGDATA/postgresql.conf + fi +} + if [ "${1:0:1}" = '-' ]; then set -- postgres "$@" fi @@ -10,6 +22,7 @@ if [ "$1" = 'postgres' ]; then for v in ${VARS[@]}; do if [ "${!v}" = "" ]; then echo "$v is required for Wal-E but not set. Skipping Wal-E setup." + update_conf . /docker-entrypoint.sh exit fi @@ -23,7 +36,9 @@ if [ "$1" = 'postgres' ]; then done chown -R root:postgres /etc/wal-e.d + WAL_LEVEL=archive + ARCHIVE_MODE=on + + update_conf . /docker-entrypoint.sh fi - -exec "$@"