Do not skip directories when creating tar archive (#72)

* Update targz library to include potential ownership fix

* Move archive logic to main repo

* Remove assertions for debugging

* Use relative path in assertion

* Strip local part from archive location

* Log when extracting in tests

* Fix trimming of prfix

* Add license info to archive.go file

* Undo change in test assertion

* Add test checking for preserved file ownership

* use same postgres version in tests

* Wrap errors when archiving, handle deletion at script layer
This commit is contained in:
Frederik Ring
2022-02-22 07:49:24 +01:00
committed by GitHub
parent 58b42b9036
commit 3ded77448c
9 changed files with 202 additions and 8 deletions

28
test/ownership/run.sh Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
# This test refers to https://github.com/offen/docker-volume-backup/issues/71
set -e
cd $(dirname $0)
mkdir -p local
docker-compose up -d
sleep 5
docker-compose exec backup backup
sudo tar --same-owner -xvf ./local/backup.tar.gz -C /tmp
sudo find /tmp/backup/postgres > /dev/null
echo "[TEST:PASS] Backup contains files at expected location"
for file in $(sudo find /tmp/backup/postgres); do
if [ "$(sudo stat -c '%u:%g' $file)" != "70:70" ]; then
echo "[TEST:FAIL] Unexpected file ownership for $file: $(sudo stat -c '%u:%g' $file)"
exit 1
fi
done
echo "[TEST:PASS] All files and directories in backup preserved their ownership."
docker-compose down --volumes