diff scripts/updates-apply.sh @ 51:40e10b1d32f7

add script to apply image updates to compose projects
author Dave smith <smith@nwoca.org>
date Mon, 22 Feb 2016 17:32:57 -0500
parents
children 9832111e8d7c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/updates-apply.sh	Mon Feb 22 17:32:57 2016 -0500
@@ -0,0 +1,46 @@
+
+# Scans for docker projects in specified parent path and
+# updated images, if applicable.
+#
+# The parent directory to search for docker-compose.yml
+# files must be specified.  An optional service to update
+# may be specified in the second argument. The default is
+# to update services matching "*app".
+#
+# Only services which are currently running will be updated.
+# The script will not automatically start stopped services.
+#
+# examples:
+#   /ssdt/apply-updates.sh /data/preview
+#   /ssdt/apply-updates.sh /data/preview usps
+#
+: ${1?"Usage: {parent path} [service]"}
+SERVICE=${2:-*app}
+
+ORIGINALDIR=$PWD
+PARENTDIR=$1
+
+for f in $(find $PARENTDIR -name docker-compose.yml)
+do
+   projectdir=`dirname $f`
+   project=`basename $projectdir`
+   cd $projectdir
+   echo -e "----\n$project: checking services"
+   while read line
+   do
+      read  container eol <<< $line
+      if [[ $container == *_1 ]]
+      then
+        t=(${container//_/ })
+        service=${t[1]}
+        if [[ $service == $SERVICE ]]
+        then
+           echo -e "\n$project: Updating $service"
+           docker-compose up -d $service
+        fi
+      fi
+   done < <(docker-compose ps)
+
+done
+
+cd $ORIGINALDIR