mirror of
https://github.com/offen/docker-volume-backup.git
synced 2024-11-14 02:25:49 +01:00
6ded00aa06
* add studio-b12/gowebdav to be able to upload to webdav server * make sure all env variables are present for webdav upload * implement file upload to WebDav server directory defaults to the base directory * docs: add the new feature to the documentation * if no WebDav env variable are given throw no error * docs: use more elegant english :D Co-authored-by: Frederik Ring <frederik.ring@gmail.com> * docs: use official spelling of "WebDAV" * perf: golang likes to return early instead of having an else block * use WEBDAV_PATH instead of WEBDAV_DIRECTORY * use split_words for more convenience like shown here: https://github.com/kelseyhightower/envconfig#struct-tag-support * simplify * feat: add pruning of files in WebDAV remote Based on / Inspired by the minio/S3 implementation of pruning remote files. * remove logging from the development * test: first try implementing tests Sandly I have to use the remote pipeline -- local wont work for me. * test: adapt used volume names * test: specify image only once! * test: minio AND webdav data should be present * test: backups on WebDAV remote are laying in the root directory * test: the webdav server stores date in /var/lib/dav * trying with data subfolder * test: 1 container was added so the number raised from 3 to 4 * webdav subfolder is "data" not "backup" * fix: password AND username must be defined not password OR username * improve logging * feat: if the given path on the server isnt preset it will be created * test: add creation of new folder for webdav to tests Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
minio:
|
|
image: minio/minio:RELEASE.2020-08-04T23-10-51Z
|
|
environment:
|
|
MINIO_ROOT_USER: test
|
|
MINIO_ROOT_PASSWORD: test
|
|
MINIO_ACCESS_KEY: test
|
|
MINIO_SECRET_KEY: GMusLtUmILge2by+z890kQ
|
|
entrypoint: /bin/ash -c 'mkdir -p /data/backup && minio server /data'
|
|
volumes:
|
|
- minio_backup_data:/data
|
|
|
|
webdav:
|
|
image: bytemark/webdav:2.4
|
|
environment:
|
|
AUTH_TYPE: Digest
|
|
USERNAME: test
|
|
PASSWORD: test
|
|
volumes:
|
|
- webdav_backup_data:/var/lib/dav
|
|
|
|
backup: &default_backup_service
|
|
image: offen/docker-volume-backup:${TEST_VERSION}
|
|
hostname: hostnametoken
|
|
depends_on:
|
|
- minio
|
|
- webdav
|
|
restart: always
|
|
environment:
|
|
AWS_ACCESS_KEY_ID: test
|
|
AWS_SECRET_ACCESS_KEY: GMusLtUmILge2by+z890kQ
|
|
AWS_ENDPOINT: minio:9000
|
|
AWS_ENDPOINT_PROTO: http
|
|
AWS_S3_BUCKET_NAME: backup
|
|
BACKUP_FILENAME_EXPAND: 'true'
|
|
BACKUP_FILENAME: test-$$HOSTNAME.tar.gz
|
|
BACKUP_LATEST_SYMLINK: test-$$HOSTNAME.latest.tar.gz.gpg
|
|
BACKUP_CRON_EXPRESSION: 0 0 5 31 2 ?
|
|
BACKUP_RETENTION_DAYS: ${BACKUP_RETENTION_DAYS:-7}
|
|
BACKUP_PRUNING_LEEWAY: 5s
|
|
BACKUP_PRUNING_PREFIX: test
|
|
GPG_PASSPHRASE: 1234secret
|
|
WEBDAV_URL: http://webdav/
|
|
WEBDAV_PATH: /my/new/path/
|
|
WEBDAV_USERNAME: test
|
|
WEBDAV_PASSWORD: test
|
|
volumes:
|
|
- ./local:/archive
|
|
- app_data:/backup/app_data:ro
|
|
- /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:
|
|
minio_backup_data:
|
|
webdav_backup_data:
|
|
app_data:
|