Skip to content
Snippets Groups Projects
update 1.48 KiB
#!/bin/bash

function removecontainer {
  while true; do
    ID=$(docker container ls --all -q -f ancestor=$1 | head -1)
    if [[ -n ${ID} ]]; then
      echo "Removing outdated container ..."
      docker kill ${ID} >/dev/null 2>&1
      docker rm ${ID} >/dev/null 2>&1
    else
      break
    fi
  done
  if [[ "$2" == "rmi" ]]; then
    echo "Removing outdated image ..."
    docker rmi $1 >/dev/null 2>&1
  fi
}

function cleanup {
  if [[ $L3D_FORCE_UPDATE -eq 1 ]]; then
    docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} > /tmp/reset.lst
    for IMAGEID in `cat /tmp/reset.lst`; do
      removecontainer $IMAGEID
    done
  else
    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
    removecontainer $IMAGEID rmi
  fi
  docker image ls -q registry.lakedrops.com/docker/node > /tmp/reset.lst
  for IMAGEID in `cat /tmp/reset.lst`; do
    removecontainer $IMAGEID
  done
}

if [[ -n ${PHP_VERSION} ]]; then
  if [[ $L3D_FORCE_UPDATE -eq 1 ]]; then
    echo "Force update"
    cleanup
  else
    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | head -1)
    if [[ -z ${IMAGEID} ]]; then
      exit
    fi
    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"
      cleanup
    fi
  fi
fi