view scripts/updates-apply.sh @ 223:04030a5e355a production v1.6.0

flow: Merged <release> 'v1.6.0' to <master> ('production').
author smith@nwoca.org
date Mon, 09 Oct 2017 17:22:23 +0100
parents fea886ba7279
children 6aecbb32c587
line wrap: on
line source
#!/bin/bash
# Scans for docker projects in specified parent path and
# updates 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
#

source "${SSDT_SCRIPTS:-$(dirname "${BASH_SOURCE[0]}")}/.functions.sh"

: ${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