view scripts/updates-apply.sh @ 605:46a67e7afd98 release/2.23.0 tip

flow: Created branch 'release/2.23.0'.
author Marc Davis <marc.davis@mcoecn.org>
date Wed, 18 Sep 2024 20:38:06 -0400
parents 6aecbb32c587
children
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 uspsapp
#

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
        if [[ $eol =~ "Up" ]]
        then
           t=(${container//_/ })
           service=${t[1]}
           if [[ $service == $SERVICE ]]
           then
             echo -e "\n$project: Updating $service"
             docker-compose up -d $service
           fi
        fi
      fi
   done < <(docker-compose ps)

done

cd $ORIGINALDIR