From 1482afb976f283339972fbdde5e8572dac35ea68 Mon Sep 17 00:00:00 2001 From: Tanner Davis Date: Sat, 2 Dec 2023 12:28:20 -0700 Subject: [PATCH] script for updating containers --- ct/rhasspy.sh | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/ct/rhasspy.sh b/ct/rhasspy.sh index c66ac307..caebe145 100644 --- a/ct/rhasspy.sh +++ b/ct/rhasspy.sh @@ -52,9 +52,40 @@ function default_settings() { } function update_script() { + if [[ ! -d /var/lib/docker/volumes/rhasspy_profiles/_data ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \ + "1" "Update ALL Containers" ON \ + "2" "Remove ALL Unused Images" OFF \ + 3>&1 1>&2 2>&3) header_info - if [[ ! -d /usr/lib/rhasspy/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi - msg_info "Updating $APP LXC" + + if [ "$UPD" == "1" ]; then + msg_info "Updating All Containers" + CONTAINER_LIST="${1:-$(docker ps -q)}" + for container in ${CONTAINER_LIST}; do + CONTAINER_IMAGE="$(docker inspect --format "{{.Config.Image}}" --type container ${container})" + RUNNING_IMAGE="$(docker inspect --format "{{.Image}}" --type container "${container}")" + docker pull "${CONTAINER_IMAGE}" + LATEST_IMAGE="$(docker inspect --format "{{.Id}}" --type image "${CONTAINER_IMAGE}")" + if [[ "${RUNNING_IMAGE}" != "${LATEST_IMAGE}" ]]; then + echo "Updating ${container} image ${CONTAINER_IMAGE}" + DOCKER_COMMAND="$(runlike "${container}")" + docker rm --force "${container}" + eval ${DOCKER_COMMAND} + fi + done + msg_ok "Updated All Containers" + exit + fi + if [ "$UPD" == "2" ]; then + msg_info "Removing ALL Unused Images" + docker image prune -af + msg_ok "Removed ALL Unused Images" + exit + fi }