summaryrefslogtreecommitdiff
path: root/docker_tools/docker_compose_backup.sh
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2019-05-12 12:56:45 +0200
committerMiguel <m.i@gmx.at>2019-05-12 12:56:45 +0200
commit3ccd1cf7427768cb390527a45753e0cc32f4d609 (patch)
tree4f1c229f55b95a7b58f316cd4a92bfa759a6389c /docker_tools/docker_compose_backup.sh
parentf1fa025404314863878546405edea0e18ff9151a (diff)
added docker tools
Diffstat (limited to 'docker_tools/docker_compose_backup.sh')
-rwxr-xr-xdocker_tools/docker_compose_backup.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/docker_tools/docker_compose_backup.sh b/docker_tools/docker_compose_backup.sh
new file mode 100755
index 0000000..c279463
--- /dev/null
+++ b/docker_tools/docker_compose_backup.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+set -e
+
+DOCKINGDIR=/home/miguel/docking
+BACKUPDIR=/home/miguel/BACKUP
+BACKUPSCRIPT=/home/miguel/git/docker_tools/docker_backup_offline_vol.sh
+TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
+
+DOCKS=`ls $DOCKINGDIR`
+
+function backup_dock {
+
+ SOURCE=$1
+ TARGET=$2
+
+ mkdir -p $TARGET
+ tar -C $SOURCE -cf $TARGET/compose.tar .
+
+ CONTAINERS=`cd $SOURCE && docker-compose ps -q`
+ ALLVOLUMES=
+
+ for c in $CONTAINERS
+ do
+
+
+ NAME=`docker inspect -f '{{ .Name }}' $c | sed 's/\///'`
+ echo container = [$NAME]
+
+ docker inspect $c > $TARGET/$NAME.json
+
+ VOLUMES=`docker inspect -f '{{ range .Mounts }}{{.Name}} {{end}}' $c`
+
+ for v in $VOLUMES
+ do
+ ALLVOLUMES+="$v "
+ done
+
+ done
+
+ # remove duplicates
+ ALLVOLUMES=`echo $ALLVOLUMES | tr ' ' '\n' | sort | uniq`
+
+ ## STOP ##
+ cd $SOURCE
+ set +e
+ docker-compose down
+ set -e
+ ##
+
+ cd $TARGET
+ sudo chown 100000 .
+
+ for v in $ALLVOLUMES
+ do
+ echo volume = [$v]
+ $BACKUPSCRIPT $v $v.tar
+ done
+
+ ## START ##
+ cd $SOURCE
+ docker-compose up -d
+ ##
+
+}
+
+
+########### CYCLE THROUGH ALl DOCKS ##############
+
+for d in $DOCKS
+do
+ # SKIP xxx FOLDER!
+ if [ "$d" == "xxx" ]; then
+ continue
+ fi
+ echo dock = [$d]
+ backup_dock $DOCKINGDIR/$d $BACKUPDIR/$TIMESTAMP/$d
+done