diff --git a/runme.sh b/runme.sh index 1e5217c00ba2a230e0b8ea36898812c2ffc5f84e..2cd8bfdac7ba7a56908755c1495dea7ed9b22ce3 100755 --- a/runme.sh +++ b/runme.sh @@ -17,12 +17,13 @@ IMAGE="docker.io/eclipsefdn/www.eclipse.org:latest" #podman should be a drop in replacement for docker PODMAN="/usr/bin/podman" CONTAINER_NAME="www-httpd" -RUNNING_IMAGE="" +IMAGE_TRACKER="/var/run/eclipse.org-image" LATEST_IMAGE="" function pull_image { # echo "Fetching $IMAGE" - $PODMAN pull -q $IMAGE + # -q doesn't seem to supress all output, so let's trap it in a local var + local RETURN=$($PODMAN pull -q $IMAGE) } function get_image_id { @@ -31,34 +32,30 @@ function get_image_id { } function run_image { -# echo "Running Image $LATEST_IMAGE" + echo "Running Image $LATEST_IMAGE" $PODMAN run --name=$CONTAINER_NAME -d -p 18181:8080 $LATEST_IMAGE } #main loop starts here. +if [ -f ${IMAGE_TRACKER} ] && [ -s ${IMAGE_TRACKER} ] ; then + RUNNING_IMAGE=$(cat $IMAGE_TRACKER) +else + RUNNING_IMAGE="" +fi +#pull and get the image id pull_image + LATEST_IMAGE=$(get_image_id) if [[ $RUNNING_IMAGE == "" ]]; then -# echo "Init setting RUNNING_IMAGE=LATEST_IMAGE" - RUNNING_IMAGE=$LATEST_IMAGE + echo "Init setting RUNNING_IMAGE=LATEST_IMAGE" + run_image + echo -n $LATEST_IMAGE > $IMAGE_TRACKER +elif [[ $RUNNING_IMAGE != $LATEST_IMAGE ]]; then + echo "Latest image id is not the running image, restarting" + $PODMAN stop $CONTAINER_NAME + $PODMAN rm $CONTAINER_NAME + run_image + #update the image 'version' tracker file + echo -n $LATEST_IMAGE > $IMAGE_TRACKER fi - -run_image - -while : -do - sleep 300; - #pull and get the image id - pull_image - LATEST_IMAGE=$(get_image_id) - if [[ $RUNNING_IMAGE != $LATEST_IMAGE ]]; then - echo "Latest image id is not the running image, restarting" - $PODMAN stop $CONTAINER_NAME - $PODMAN rm $CONTAINER_NAME - run_image - RUNNING_IMAGE=$LATEST_IMAGE - fi - -done -