Detect service names nicely

This commit is contained in:
2022-11-18 13:23:01 +02:00
parent d81683b431
commit f08ba95750

View File

@@ -38,6 +38,11 @@ flags()
shift
if [[ -d $CONTAINER_DIR/$1 ]]; then
export CONTAINER_PATHS="$CONTAINER_DIR/$1"
else
CONTAINER_PATHS="$(find /var/Red-Vol/Media/Containers/ -maxdepth 1 -type d -name "*$1*" | head -1)"
if [[ -n $CONTAINER_PATHS ]]; then
export CONTAINER_PATHS
fi
fi
shift;;
(-v|--verbose|verbose)
@@ -98,6 +103,7 @@ for container_path in ${CONTAINER_PATHS[@]}; do
debug "$container_image has tag" "$image_tag"
export container_image=$(echo $container_image | awk -F: '{print $1}')
# If the container does have a tag, keep the base name ^ without it (before the :)
export container_name=$(echo $container_name | awk -F: '{print $1}')
fi
debug "Fetching local image checksum with:" "docker inspect \"$container_image$image_tag\" | grep -Eo \"($container_image@)?sha256:([0-9a-zA-Z].*)(\\\")\" | sed -e 's/\"//g' | awk -F@ '{print \$2}"
local_image=$(docker inspect "$container_image$image_tag" | grep -Eo "($container_image@)?sha256:([0-9a-zA-Z].*)(\")" | sed -e 's/"//g' -e 's/\s+//g' | awk -F@ '{print $2}')
@@ -130,8 +136,9 @@ for container_path in ${CONTAINER_PATHS[@]}; do
ok "$container_name" "is up to date!"
else
warn "$container_name" "is out of date!"
service=$(cat "$container_path/docker-compose.yml" | grep -B1 "$container_image" | head -1 | sed -e 's/^[ \t]*//' -e 's/://g')
info "Attempting to update" "$container_name"
if docker-compose pull $container_name; then
if docker-compose pull $service; then
info "Pulled latest image for" "$container_name"
if docker-compose up -d --remove-orphans; then
ok "$container_stack" "has been updated sucessfully!"