From 51ff069f05695186cc1cd3146853b5964e20aba3 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Sat, 5 Jan 2019 19:50:38 +0100
Subject: [PATCH] #15 Improve image update script

---
 run/scripts/update | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/run/scripts/update b/run/scripts/update
index 1d5d321..179d180 100755
--- a/run/scripts/update
+++ b/run/scripts/update
@@ -1,19 +1,28 @@
 #!/bin/bash
 
 if [[ -n ${PHP_VERSION} ]]; then
-  IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION})
   echo "Updating the image ..."
   STATUS=$(docker pull registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION})
   if [[ "$STATUS" == *"Status: Image is up to date"* ]]; then
     echo "Already up to date"
   else
     echo "Image updated"
+    NEWIMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
     while true; do
-      ID=$(docker container ls -q -f ancestor=${IMAGEID})
-      if [[ -n ${ID} ]]; then
-        echo "Removing outdated container ..."
-        docker stop ${ID}
-        docker rm ${ID}
+      IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | grep --invert-match ${NEWIMAGEID})
+      if [[ -n ${IMAGEID} ]]; then
+        while true; do
+          ID=$(docker container ls -q -f ancestor=${IMAGEID})
+          if [[ -n ${ID} ]]; then
+            echo "Removing outdated container ..."
+            docker stop ${ID}
+            docker rm ${ID}
+          else
+            break
+          fi
+        done
+        echo "Removing outdated image ..."
+        docker rmi ${IMAGEID}
       else
         break
       fi
-- 
GitLab