docker images for wal-g
https://github.com/wal-g/wal-g/releases/latest
Tags:
docker pull ghcr.io/sixcorners/wal-g:fdb
docker pull ghcr.io/sixcorners/wal-g:gp
docker pull ghcr.io/sixcorners/wal-g:mongo
docker pull ghcr.io/sixcorners/wal-g:mysql
docker pull ghcr.io/sixcorners/wal-g:pg
docker pull ghcr.io/sixcorners/wal-g:redis
docker pull ghcr.io/sixcorners/wal-g:sqlserver
Use it like this:
services:
postgres:
image: postgres:14-alpine
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ABvreLgKOyHV3VcZkCJ5
POSTGRES_HOST_AUTH_METHOD: |
scram-sha-256
host replication all 172.0.0.0/8 scram-sha-256
ports:
- 127.0.0.1:5432:5432
volumes:
- data:/var/lib/postgresql
wal-g:
image: ghcr.io/sixcorners/wal-g:pg
restart: unless-stopped
environment:
WALG_LOG_LEVEL: DEVEL
WALG_COMPRESSION_METHOD: brotli
WALG_S3_PREFIX: s3://qddAhsGKklGSBKfL7AB6/
AWS_ENDPOINT: https://s3.us-west-000.backblazeb2.com
AWS_ACCESS_KEY_ID: 00080vaZc1PFhmU0000000005
AWS_SECRET_ACCESS_KEY: szoa6m7gxnEheoR8QfD4pamfrENs6As
PGHOST: postgres
PGUSER: postgres
PGPASSWORD: ABvreLgKOyHV3VcZkCJ5
WALG_PGP_KEY: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEaR59hRYJKwYBBAHaRw8BAQdAsOK1sSiQgwei3oBLqiVLaqVSxF1BVEC+
8vNlDhCCFCDNAMKMBBAWCgA+BYJpHn2FBAsJBwgJkE34d9UaxC4WAxUICgQW
AAIBAhkBApsDAh4BFiEEAhUKUwx59qvBRLc9Tfh31RrELhYAAHEtAQCdvWxY
ws/YadICrhhuP1p+Mb7m0+k+dsqYM3czbhs80QEA+suo02HyMqQcaD9uVuch
Fy+mcfN3j8YnAEAUG2rRvQTOOARpHn2FEgorBgEEAZdVAQUBAQdABl7JIZkz
ivYLQpNoOTFmVt//WsRdMLb4BEHD0zoYBjcDAQgHwngEGBYKACoFgmkefYUJ
kE34d9UaxC4WApsMFiEEAhUKUwx59qvBRLc9Tfh31RrELhYAAKL9AP9AurSg
zXflK4Cgea8AXBZ7DVLnm3GCTlrveCCPLal4YAD+LwSiPqXG/acsN173ojeM
yYBr1qxh6UhnWYVjC42pxwA=
=yROo
-----END PGP PUBLIC KEY BLOCK-----
command: ["wal-g", "wal-receive"]
volumes:
data:Use:
wal-receiveto backup wal files continuously.backup-pushto perform a one time full backup.
n.b.
backup-push uploads metadata files and paths that are not client-side encrypted.
backup-push doesn't work on 15+ (wal-g/wal-g#2044).
b2 object store is unstable for some unknown reason (wal-g/wal-g#1741).
I think that most people install wal-g alongside their db and use archive_command instead of this.
idk how to use the other wal-g variants for non-postgres databases.
If you don't periodically test the restore procedure you don't have a backup.
wal-receive will create a replication slot if it can. If you then stop wal-g wal files will build up on disk indefinitely.
If you point two wal-g at the exact same prefix they will clobber each other's files.
Here is mitmproxy's curses UI listing PUT requests to b2 from two wal-g backups and later wal streaming.

If this helps you or you have any other feedback feel free to open a thread here.