diff --git a/README.md b/README.md index d6f7f10..a4868ac 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,8 @@ Most variables are the same as in the [official postgres image](https://hub.dock | POSTGRES_USER_FILE | Alternative to POSTGRES_USER, for usage with docker secrets. | | SCHEDULE | [Cron-schedule](http://godoc.org/github.com/robfig/cron#hdr-Predefined_schedules) specifying the interval between postgres backups. Defaults to `@daily`. | | TZ | [POSIX TZ variable](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html) specifying the timezone used to evaluate SCHEDULE cron (example "Europe/Paris"). | +| WEBHOOK_EXTRA_URL | Extra arguments for the webhook. | +| WEBHOOK_URL | URL to be called after a successful backup. | #### Special Environment Variables @@ -135,3 +137,4 @@ Replace `$BACKUPFILE`, `$VERSION`, `$HOSTNAME`, `$PORT`, `$USERNAME` and `$DBNAM ```sh docker run --rm --tty --interactive -v $BACKUPFILE:/tmp/backupfile.sql.gz postgres:$VERSION /bin/sh -c "zcat /tmp/backupfile.sql.gz | psql --host=$HOSTNAME --port=$PORT --username=$USERNAME --dbname=$DBNAME -W" ``` + diff --git a/alpine.Dockerfile b/alpine.Dockerfile index 51bd847..a63c863 100644 --- a/alpine.Dockerfile +++ b/alpine.Dockerfile @@ -27,7 +27,9 @@ ENV POSTGRES_DB="**None**" \ BACKUP_KEEP_WEEKS=4 \ BACKUP_KEEP_MONTHS=6 \ BACKUP_KEEP_MINS=1440 \ - HEALTHCHECK_PORT=8080 + HEALTHCHECK_PORT=8080 \ + WEBHOOK_URL="**None**" \ + WEBHOOK_EXTRA_ARGS="" COPY backup.sh /backup.sh diff --git a/backup.sh b/backup.sh index ebd481b..16ad501 100755 --- a/backup.sh +++ b/backup.sh @@ -115,3 +115,13 @@ for DB in ${POSTGRES_DBS}; do done echo "SQL backup created successfully" + +if [ "${WEBHOOK_URL}" != "**None**" ]; then + echo "Execute post-backup webhook call to ${WEBHOOK_URL}" + curl --request POST \ + --url "${WEBHOOK_URL}" \ + --max-time 10 \ + --retry 5 \ + ${WEBHOOK_EXTRA_ARGS} + exit 1 +fi diff --git a/debian.Dockerfile b/debian.Dockerfile index e443193..1b275a3 100644 --- a/debian.Dockerfile +++ b/debian.Dockerfile @@ -42,7 +42,9 @@ ENV POSTGRES_DB="**None**" \ BACKUP_KEEP_WEEKS=4 \ BACKUP_KEEP_MONTHS=6 \ BACKUP_KEEP_MINS=1440 \ - HEALTHCHECK_PORT=8080 + HEALTHCHECK_PORT=8080 \ + WEBHOOK_URL="**None**" \ + WEBHOOK_EXTRA_ARGS="" COPY backup.sh /backup.sh