Files
linux-8.2/remove.sh
2024-12-10 21:38:48 +02:00

99 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
stop_containers() {
local containers=$(sudo docker ps -q --filter='name=callabacloud-*')
if [[ -n "$containers" ]]; then
if sudo docker stop --time 60 $containers; then
echo "Containers stopped successfully"
else
echo "Error: Unable to stop containers" >&2
return 1
fi
else
echo "No containers to stop"
fi
}
remove_containers() {
local containers=$(sudo docker ps -a -q --filter='name=callabacloud-*')
if [[ -n "$containers" ]]; then
if sudo docker rm $containers; then
echo "Containers removed successfully"
else
echo "Error: Unable to remove containers" >&2
return 1
fi
else
echo "No containers to remove"
fi
}
remove_images() {
local images=$(sudo docker images -q --filter=reference="registry.callabacloud.com/*/*:*")
if [[ -n "$images" ]]; then
if sudo docker rmi -f $images; then
echo "Images removed successfully"
else
echo "Error: Unable to remove images" >&2
return 1
fi
else
echo "No images to remove"
fi
}
remove_volumes() {
local volumes=$(sudo docker volume list -q --filter='name=callabacloud-*')
if [[ -n "$volumes" ]]; then
if sudo docker volume rm $volumes; then
echo "Volumes removed successfully"
else
echo "Error: Unable to remove volumes" >&2
return 1
fi
else
echo "No volumes to remove"
fi
}
prune_network() {
if sudo docker network prune -f; then
echo "Network pruned successfully"
else
echo "Error: Unable to prune network" >&2
return 1
fi
}
delete_rules() {
local ports=(3000 3021 3031 27017)
for port in ${ports[@]}; do
if sudo iptables -D INPUT -p tcp --dport $port -j DROP; then
echo "Rule for port $port deleted successfully"
else
echo "Error: Unable to delete rule for port $port" >&2
fi
done
if sudo iptables-save > /etc/iptables/rules.v4; then
echo "Iptables rules saved successfully"
else
echo "Error: Unable to save iptables rules" >&2
return 1
fi
}
echo "Uninstalling Callaba Cloud has been started. Please don't stop this process. It may take about 2 minutes."
stop_containers
remove_containers
remove_images
remove_volumes
prune_network
delete_rules