530e8f0194
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.
45 lines
1.1 KiB
Bash
Executable File
45 lines
1.1 KiB
Bash
Executable File
#!/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
|
|
|
|
if [ "$1" = 'postgres' ]; then
|
|
VARS=(AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY WALE_S3_PREFIX AWS_REGION)
|
|
|
|
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
|
|
done
|
|
|
|
umask u=rwx,g=rx,o=
|
|
mkdir -p /etc/wal-e.d/env
|
|
|
|
for v in ${VARS[@]}; do
|
|
echo "${!v}" > /etc/wal-e.d/env/$v
|
|
done
|
|
chown -R root:postgres /etc/wal-e.d
|
|
|
|
WAL_LEVEL=archive
|
|
ARCHIVE_MODE=on
|
|
|
|
update_conf
|
|
. /docker-entrypoint.sh
|
|
fi
|