Allow multiple schedules in the same container (#78)

* Allow mounting of config directory for multiple schedules

* Add docs for conf.d feature

* Fix behavior on multiple files

* Define default case first in entrypoint script
This commit is contained in:
Frederik Ring
2022-03-04 13:51:26 +01:00
committed by GitHub
parent 6e1b8553e6
commit c9ebb9e14e
8 changed files with 95 additions and 4 deletions

View File

@@ -21,7 +21,7 @@ services:
volumes:
- webdav_backup_data:/var/lib/dav
backup: &default_backup_service
backup:
image: offen/docker-volume-backup:${TEST_VERSION:-canary}
hostname: hostnametoken
depends_on:

1
test/confd/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
local

2
test/confd/backup.env Normal file
View File

@@ -0,0 +1,2 @@
BACKUP_FILENAME="conf.tar.gz"
BACKUP_CRON_EXPRESSION="*/1 * * * *"

View File

@@ -0,0 +1,22 @@
version: '3'
services:
backup:
image: offen/docker-volume-backup:${TEST_VERSION:-canary}
restart: always
volumes:
- ./local:/archive
- app_data:/backup/app_data:ro
- ./backup.env:/etc/dockervolumebackup/conf.d/00backup.env
- ./never.env:/etc/dockervolumebackup/conf.d/10never.env
- /var/run/docker.sock:/var/run/docker.sock
offen:
image: offen/offen:latest
labels:
- docker-volume-backup.stop-during-backup=true
volumes:
- app_data:/var/opt/offen
volumes:
app_data:

2
test/confd/never.env Normal file
View File

@@ -0,0 +1,2 @@
BACKUP_FILENAME="never.tar.gz"
BACKUP_CRON_EXPRESSION="0 0 5 31 2 ?"

26
test/confd/run.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
set -e
cd $(dirname $0)
mkdir -p local
docker-compose up -d
# sleep until a backup is guaranteed to have happened on the 1 minute schedule
sleep 100
docker-compose down --volumes
if [ ! -f ./local/conf.tar.gz ]; then
echo "[TEST:FAIL] Config from file was not used."
exit 1
fi
echo "[TEST:PASS] Config from file was used."
if [ -f ./local/never.tar.gz ]; then
echo "[TEST:FAIL] Unexpected file was found."
exit 1
fi
echo "[TEST:PASS] Unexpected cron did not run."