Docker: Backups automáticos de tus bases de datos postgres
2023-07-03
Índice
Si utilizas postgres como gestor de bases de datos, existe un contenedor postgres-backup-local, que realiza una copia de seguridad de las bases de datos instaladas en nuestra instancia de PostgresSQL a una carpeta local.
Realiza copias de seguridad rotativas periódicas, mediante la variable SCHEDULE
, de las bases de datos especificadas en POSTGRES_DB
Docker compose
Fichero docker compose
``` shell
version: '2'
services:
postgres:
image: postgres
restart: always
environment:
- POSTGRES_DB=database
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
# - POSTGRES_PASSWORD_FILE=/run/secrets/db_password <-- alternative for POSTGRES_PASSWORD (to use with docker secrets)
pgbackups:
image: prodrigestivill/postgres-backup-local
restart: always
user: postgres:postgres # Optional: see below
volumes:
- /var/opt/pgbackups:/backups
links:
- postgres
depends_on:
- postgres
environment:
- POSTGRES_HOST=postgres
- POSTGRES_DB=database
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
# - POSTGRES_PASSWORD_FILE=/run/secrets/db_password <-- alternative for POSTGRES_PASSWORD (to use with docker secrets)
- POSTGRES_EXTRA_OPTS=-Z6 --schema=public --blobs
- SCHEDULE=@daily
- BACKUP_KEEP_DAYS=7
- BACKUP_KEEP_WEEKS=4
- BACKUP_KEEP_MONTHS=6
- HEALTHCHECK_PORT=8080
```
- SCHEDULE valores validos, https://pkg.go.dev/github.com/robfig/cron#hdr-Predefined_schedules
Plantilla unRaid
Procedemos a instalar la aplicación desde la tienda de aplicaciones
Y procedemos a configurar la plantilla
Las copias de seguridad guardan en /backups
, que en mi ejemplo toma el valor de /mnt/backups/backup_BD
Espero que te haya gustado, pasa un gran día 🐧