diff --git a/scripts/docker-cleanup.sh b/scripts/docker-cleanup.sh index fc9a69809..0fac7a95d 100755 --- a/scripts/docker-cleanup.sh +++ b/scripts/docker-cleanup.sh @@ -177,7 +177,12 @@ info "Removing stale tagged images..." # Collect image IDs that are directly used by running containers so we never # touch them regardless of tag matching. -running_image_ids=$(ce ps -q 2>/dev/null | xargs -r ce inspect --format '{{.Image}}' 2>/dev/null | sort -u) +container_ids=($(ce ps -q 2>/dev/null)) +if [[ ${#container_ids[@]} -gt 0 ]]; then + running_image_ids=$(ce inspect --format '{{.Image}}' "${container_ids[@]}" 2>/dev/null | sort -u) +else + running_image_ids="" +fi stale_images=() while IFS=$'\t' read -r repo tag id; do @@ -215,9 +220,13 @@ echo info "Removing unused volumes..." # Identify volumes in use by running containers -in_use_volumes=$(ce ps -q 2>/dev/null \ - | xargs -r ce inspect --format '{{range .Mounts}}{{.Name}} {{end}}' 2>/dev/null \ - | tr ' ' '\n' | sort -u | grep -v '^$' || true) +container_ids=($(ce ps -q 2>/dev/null)) +if [[ ${#container_ids[@]} -gt 0 ]]; then + in_use_volumes=$(ce inspect --format '{{range .Mounts}}{{.Name}} {{end}}' "${container_ids[@]}" 2>/dev/null \ + | tr ' ' '\n' | sort -u | grep -v '^$' || true) +else + in_use_volumes="" +fi unused_volumes=() while read -r vol; do