Fork of eeshugerman's postgres-backup-s3 container to support newer postgres versions (18)
3.6K
This project is based on eeshugerman's PostgreSQL backup container. Since it's archived, I've forked this to support recent PostgreSQL versions.
You can get the image from here:
https://hub.docker.com/r/ardakilic/postgres-backup-s3
Source code of the repository:
https://github.com/Ardakilic/postgres-backup-s3/
This project provides Docker images to periodically back up a PostgreSQL database to AWS S3, and to restore from the backup as needed.
services:
postgres:
image: postgres:18
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
backup:
image: ardakilic/postgres-backup-s3:18
environment:
SCHEDULE: '@weekly' # optional
BACKUP_KEEP_DAYS: 7 # optional
PASSPHRASE: passphrase # optional
S3_REGION: region
S3_ACCESS_KEY_ID: key
S3_SECRET_ACCESS_KEY: secret
S3_BUCKET: my-bucket
S3_PREFIX: backup
POSTGRES_HOST: postgres
POSTGRES_DATABASE: dbname
POSTGRES_USER: user
POSTGRES_PASSWORD: password
12, 13, 14, 15, 16, 17 or 18.SCHEDULE variable determines backup frequency. See go-cron schedules documentation here. Omit to run the backup immediately and then exit.PASSPHRASE is provided, the backup will be encrypted using GPG.docker exec <container name> sh backup.sh to trigger a backup ad-hoc.BACKUP_KEEP_DAYS is set, backups older than this many days will be deleted from S3.S3_ENDPOINT if you're using a non-AWS S3-compatible storage provider.Caution
DATA LOSS! All database objects will be dropped and re-created.
docker exec <container name> sh restore.sh
Note
If your bucket has more than a 1000 files, the latest may not be restored -- only one S3 `ls` command is used
docker exec <container name> sh restore.sh <timestamp>
ALPINE_VERSION determines Postgres version compatibility. See build-and-push-images.yml for the latest mapping.
DOCKER_BUILDKIT=1 docker build --build-arg ALPINE_VERSION=3.14 .
cp template.env .env
# fill out your secrets/params in .env
docker compose up -d
This project is a fork and re-structuring of @schickling's postgres-backup-s3 and postgres-restore-s3.
These changes would have been difficult or impossible merge into @schickling's repo or similarly-structured forks.
pg_dump's custom format (see docs)Content type
Image
Digest
sha256:8d1038260…
Size
48.2 MB
Last updated
6 months ago
docker pull ardakilic/postgres-backup-s3:16