Files
jr-sql-ai/scripts/cleanup-docker-ollama.sh

52 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
LOG_DIR="${ROOT}/logs"
mkdir -p "$LOG_DIR"
LOG_FILE="${LOG_DIR}/cleanup-docker-ollama-$(date -Iseconds).log"
exec > >(tee -a "$LOG_FILE") 2>&1
ts(){ date -Is; }
log(){ echo "[$(ts)] $*"; }
log "cleanup-docker-ollama: START ROOT=${ROOT}"
if ! command -v docker >/dev/null 2>&1; then
log "cleanup-docker-ollama: docker not installed; nothing to do"
exit 0
fi
if [[ -f "${ROOT}/docker-compose.yml" ]] && docker compose version >/dev/null 2>&1; then
log "cleanup-docker-ollama: docker compose down --remove-orphans"
docker compose -f "${ROOT}/docker-compose.yml" down --remove-orphans || true
fi
if docker ps -a --format '{{.Names}}' | grep -qx 'ollama'; then
log "cleanup-docker-ollama: removing container ollama"
docker rm -f ollama || true
else
log "cleanup-docker-ollama: container ollama not present"
fi
if docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx 'ollama/ollama:latest'; then
log "cleanup-docker-ollama: removing image ollama/ollama:latest"
docker image rm -f ollama/ollama:latest || true
else
log "cleanup-docker-ollama: image ollama/ollama:latest not present"
fi
if [[ "${PURGE_OLLAMA_DOCKER_VOLUMES:-0}" == "1" ]]; then
mapfile -t volumes < <(docker volume ls --format '{{.Name}}' | grep -E 'ollama' || true)
if (( ${#volumes[@]} > 0 )); then
log "cleanup-docker-ollama: removing volumes: ${volumes[*]}"
docker volume rm "${volumes[@]}" || true
else
log "cleanup-docker-ollama: no ollama volumes found"
fi
else
log "cleanup-docker-ollama: keeping volumes (set PURGE_OLLAMA_DOCKER_VOLUMES=1 to remove them)"
fi
log "cleanup-docker-ollama: END log=${LOG_FILE}"