Skip to content
Snippets Groups Projects
user avatar
Elliott Shugerman authored
3e05233a
History

This is a fork and restructuring of schickling's postgres-backup-s3 and postgres-restore-s3.

See backup/README.md and restore/README.md for further instructions.

Fork goals:

  • dedicated repository
  • automated builds
  • support multiple PostgreSQL versions
  • support encrypted (password-protected) backups
  • merge backup and restore images?

Usage

Backup

Docker

$ docker run \
    -e S3_ACCESS_KEY_ID=key \
    -e S3_SECRET_ACCESS_KEY=secret \
    -e S3_BUCKET=my-bucket \
    -e S3_PREFIX=backup \
    -e POSTGRES_DATABASE=dbname \
    -e POSTGRES_USER=user \
    -e POSTGRES_PASSWORD=password \
    -e POSTGRES_HOST=localhost \
    eeshugerman/postgres-backup-s3

Docker Compose

postgres:
  image: postgres
  environment:
    POSTGRES_USER: user
    POSTGRES_PASSWORD: password

pgbackups3:
  image: eeshugerman/postgres-backup-s3
  container_name: pg-backup
  links:
    - postgres
  environment:
    SCHEDULE: '@daily'
    S3_REGION: region
    S3_ACCESS_KEY_ID: key
    S3_SECRET_ACCESS_KEY: secret
    S3_BUCKET: my-bucket
    S3_PREFIX: backup
    POSTGRES_DATABASE: dbname
    POSTGRES_USER: user
    POSTGRES_PASSWORD: password
    POSTGRES_EXTRA_OPTS: '--schema=public --blobs'

Automatic Periodic Backups

You can additionally set the SCHEDULE environment variable like -e SCHEDULE="@daily" to run the backup automatically.

More information about the scheduling can be found here.

Restore

With the container running,

docker exec <container name> sh restore.sh