🚧 WIP
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# Removes stack data: volumes and orphans, optionally build artifacts.
|
||||
#
|
||||
# DANGER: deletes the TimescaleDB data volume (all telemetry data), the
|
||||
# MQTT log volume, and the Loki volume. Users/groups/sessions stored in
|
||||
# Postgres are deleted with it.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/prune.sh # containers only
|
||||
# ./scripts/prune.sh --volumes # also delete all data (destructive)
|
||||
# ./scripts/prune.sh --all # also remove images and build cache
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
StackRoot="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$StackRoot"
|
||||
|
||||
Volumes=0
|
||||
All=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--volumes|-v) Volumes=1 ;;
|
||||
--all|-a) All=1 ;;
|
||||
*) echo "Unknown option: $arg" >&2; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$Volumes" -eq 1 ]; then
|
||||
echo "This deletes ALL stored data (telemetry, users, groups, sessions, logs)."
|
||||
read -r -p "Type 'delete' to continue: " confirm
|
||||
[ "$confirm" = "delete" ] || { echo "Aborted."; exit 0; }
|
||||
fi
|
||||
|
||||
echo "Removing stack containers..."
|
||||
docker compose down --remove-orphans
|
||||
|
||||
if [ "$Volumes" -eq 1 ]; then
|
||||
echo "Removing volumes..."
|
||||
docker compose down --volumes
|
||||
fi
|
||||
|
||||
if [ "$All" -eq 1 ]; then
|
||||
echo "Removing images and build cache..."
|
||||
docker compose down --rmi all
|
||||
docker image prune -f
|
||||
docker builder prune -f
|
||||
fi
|
||||
|
||||
echo "Done."
|
||||
Reference in New Issue
Block a user