From 18bf1ed76adefc9bce6f3ee7d011ed9dafd78ae0 Mon Sep 17 00:00:00 2001 From: Tara Rostami <132676256+TaraRostami@users.noreply.github.com> Date: Sat, 21 Feb 2026 20:09:36 -0600 Subject: [PATCH 1/2] fix: uninstall_node_docker_images --- pg-node.sh | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/pg-node.sh b/pg-node.sh index 42915de..f17e04a 100755 --- a/pg-node.sh +++ b/pg-node.sh @@ -772,15 +772,30 @@ uninstall_node() { fi } uninstall_node_docker_images() { - images=$(docker images | grep node | awk '{print $3}') - if [ -n "$images" ]; then - colorized_echo yellow "Removing Docker images of node" - for image in $images; do - if docker rmi "$image" >/dev/null 2>&1; then - colorized_echo yellow "Image $image removed" - fi - done + local images + images=$(docker images --format '{{.Repository}} {{.ID}}' | awk '$1 ~ /^pasarguard\/node(:|$)/ {print $2}' | sort -u) + + if [ -z "$images" ]; then + colorized_echo yellow "pasarguard/node images not found" + return 0 fi + + colorized_echo yellow "Checking pasarguard/node images for removal..." + + for image in $images; do + if docker ps -a --filter "ancestor=$image" -q | grep -q .; then + local container + container=$(docker ps -a --filter "ancestor=$image" --format '{{.Names}}' | tr '\n' ' ') + colorized_echo yellow "Skipping image $image (still used by: $container)" + continue + fi + + if docker rmi "$image" >/dev/null 2>&1; then + colorized_echo yellow "Image $image removed" + else + colorized_echo yellow "Failed to remove image $image" + fi + done } uninstall_node_data_files() { if [ -d "$DATA_DIR" ]; then From ca9a7403507cbc318c00cf2269f02b2f03760e7f Mon Sep 17 00:00:00 2001 From: Tara Rostami <132676256+TaraRostami@users.noreply.github.com> Date: Sat, 21 Feb 2026 20:16:55 -0600 Subject: [PATCH 2/2] fix: uninstall_pasarguard_docker_images --- pasarguard.sh | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/pasarguard.sh b/pasarguard.sh index c445414..df171e6 100755 --- a/pasarguard.sh +++ b/pasarguard.sh @@ -3819,16 +3819,30 @@ uninstall_pasarguard() { } uninstall_pasarguard_docker_images() { - images=$(docker images | grep pasarguard | awk '{print $3}') + local images + images=$(docker images --format '{{.Repository}} {{.ID}}' | awk '$1 ~ /^pasarguard\/panel(:|$)/ {print $2}' | sort -u) - if [ -n "$images" ]; then - colorized_echo yellow "Removing Docker images of pasarguard" - for image in $images; do - if docker rmi "$image" >/dev/null 2>&1; then - colorized_echo yellow "Image $image removed" - fi - done + if [ -z "$images" ]; then + colorized_echo yellow "pasarguard/panel images not found" + return 0 fi + + colorized_echo yellow "Checking pasarguard/panel images for removal..." + + for image in $images; do + if docker ps -a --filter "ancestor=$image" -q | grep -q .; then + local container + container=$(docker ps -a --filter "ancestor=$image" --format '{{.Names}}' | tr '\n' ' ') + colorized_echo yellow "Skipping image $image (still used by: $container)" + continue + fi + + if docker rmi "$image" >/dev/null 2>&1; then + colorized_echo yellow "Image $image removed" + else + colorized_echo yellow "Failed to remove image $image" + fi + done } uninstall_pasarguard_data_files() {