This commit is contained in:
danny28506 2026-04-29 11:11:24 -04:00
commit b603381c5e
1 changed files with 49 additions and 0 deletions

49
update-docker-containers.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# --- CONFIGURATION ---
# Add the paths to the directories containing your docker-compose.yml files
# Example: SERVICES=("/home/user/homeassistant" "/home/user/nginx")
SERVICES=(
"/root/"
)
# Color codes for better readability
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo "Starting Docker services update..."
for dir in "${SERVICES[@]}"; do
if [ -d "$dir" ] && [ -f "$dir/docker-compose.yml" ]; then
echo -e "\nUpdating service in: ${GREEN}$dir${NC}"
# Move into the directory
cd "$dir" || continue
# 1. Pull the latest images
if docker compose pull; then
echo "Images pulled successfully."
# 2. Recreate containers with the new images
# --detach: runs in background
# --remove-orphans: cleans up old services no longer in the file
if docker compose up -d --remove-orphans; then
echo -e "${GREEN}Successfully updated!${NC}"
else
echo -e "${RED}Failed to restart containers.${NC}"
fi
else
echo -e "${RED}Failed to pull images. Skipping this service.${NC}"
fi
else
echo -e "\n${RED}Error:${NC} Directory or docker-compose.yml not found at $dir"
fi
done
# 3. Cleanup
echo -e "\nCleaning up unused images..."
docker image prune -f
echo -e "\n${GREEN}All updates complete!${NC}"