diff --git a/Dockerfile b/Dockerfile index 6cfbd33..b65a227 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,6 +66,9 @@ ENV HTTP_WRITE_TIMEOUT=300 COPY --from=build --chown=rails:rails /usr/local/bundle /usr/local/bundle COPY --from=build --chown=rails:rails /rails /rails +# Install ONCE backup/restore hooks +COPY --chmod=755 hooks /hooks + # Set version and revision ARG APP_VERSION ENV APP_VERSION=$APP_VERSION diff --git a/hooks/post-restore b/hooks/post-restore new file mode 100755 index 0000000..0b9138d --- /dev/null +++ b/hooks/post-restore @@ -0,0 +1,12 @@ +#!/bin/bash +set -euo pipefail + +db_name="${RAILS_ENV:-production}.sqlite3" +snapshot="/rails/storage/backups/$db_name" +db="/rails/storage/db/$db_name" + +if [ -f "$snapshot" ]; then + mkdir -p "$(dirname "$db")" + cp "$snapshot" "$db" + rm -f "$db-wal" "$db-shm" +fi diff --git a/hooks/pre-backup b/hooks/pre-backup new file mode 100755 index 0000000..43d47f9 --- /dev/null +++ b/hooks/pre-backup @@ -0,0 +1,2 @@ +#!/bin/bash +exec /rails/script/admin/prepare-backup