54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 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}
 | |
| : ${ARCHIVE_TIMEOUT:=60}
 | |
| 
 | |
| export WAL_LEVEL
 | |
| export ARCHIVE_MODE
 | |
| export ARCHIVE_TIMEOUT
 | |
| 
 | |
| # 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
 | |
|         sed -i "s/archive_timeout =.*$/archive_timeout = $ARCHIVE_TIMEOUT/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
 | |
|             # Run the postgresql entrypoint
 | |
|             . /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
 | |
|     # Run the postgresql entrypoint
 | |
|     . /docker-entrypoint.sh
 | |
| fi
 | 
