docker-pg_dump-alpine/entrypoint.sh

29 lines
1004 B
Bash

#!/bin/sh
# Überprüfen, ob alle erforderlichen Umgebungsvariablen gesetzt sind
if [ -z "$PGHOST" ] || [ -z "$PGUSER" ] || [ -z "$PGDATABASE" ] || [ -z "$PGPASSWORD" ]; then
echo "Fehlende Umgebungsvariablen: PGHOST, PGUSER, PGDATABASE oder PGPASSWORD"
exit 1
fi
# Erstelle die .pgpass-Datei im Home-Verzeichnis des Containers
echo "$PGHOST:5432:$PGDATABASE:$PGUSER:$PGPASSWORD" > ~/.pgpass
# Setze die korrekten Berechtigungen für die .pgpass-Datei (nur für den Benutzer lesbar)
chmod 600 ~/.pgpass
# Optional: Standardwert für den Dateinamen der Sicherung
BACKUP_FILE=${BACKUP_FILE:-"/backup/$(echo $PGDATABASE)DB_$(date +%d-%m-%Y).sql"}
# Führe den pg_dump-Befehl aus (pg_dump wird automatisch die .pgpass-Datei verwenden)
pg_dump -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -F c -f "$BACKUP_FILE"
# Prüfe, ob der Befehl erfolgreich war
if [ $? -eq 0 ]; then
echo "Datenbank erfolgreich gesichert: $BACKUP_FILE"
else
echo "Fehler bei der Sicherung der Datenbank"
exit 1
fi
exit 0