Switching all configurations to happen via Codex Agents and n8n.

Refactor HAUpdate.sh to use 'docker compose' syntax for improved compatibility and readability. Added error handling with 'set -euo pipefail' and removed unused resource cleanup commands.
This commit is contained in:
Carlo Costanzo
2025-12-05 00:10:41 -05:00
parent c62e778028
commit 8ee2aff40c

View File

@@ -1,23 +1,26 @@
# - This script is used to update the Home Assistant Docker containers # - This script is used to update the Home Assistant Docker containers
# - It will pull the latest images, check if the image ID has changed, and restart the container if needed # - It will pull the latest images, check if the image ID has changed, and restart the container if needed
# - It will also cleanup unused resources after the update
# Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig # Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig
# Follow me on https://www.vcloudinfo.com/click-here # Follow me on https://www.vcloudinfo.com/click-here
#!/bin/bash #!/bin/bash
set -euo pipefail
# Update system packages # Update system packages
sudo apt-get update && sudo apt-get upgrade -y sudo apt-get update && sudo apt-get upgrade -y
DC=(docker compose)
# Pull the latest images # Pull the latest images
docker-compose pull "${DC[@]}" pull
# Get list of services from docker-compose.yml # Get list of services from docker-compose.yml
EXISTING_SERVICES=$(docker-compose config --services) EXISTING_SERVICES=$("${DC[@]}" config --services)
# Get list of running service containers # Get list of running service containers
RUNNING_CONTAINERS=$(docker-compose ps --services) RUNNING_CONTAINERS=$("${DC[@]}" ps --services)
# Loop through each running service and check if its image has changed # Loop through each running service and check if its image has changed
for service in $RUNNING_CONTAINERS; do for service in $RUNNING_CONTAINERS; do
@@ -25,15 +28,15 @@ for service in $RUNNING_CONTAINERS; do
# Get the current running image ID (remove sha256: prefix) # Get the current running image ID (remove sha256: prefix)
CURRENT_IMAGE_ID=$(docker inspect --format='{{.Image}}' "$service" 2>/dev/null | sed 's/^sha256://') CURRENT_IMAGE_ID=$(docker inspect --format='{{.Image}}' "$service" 2>/dev/null | sed 's/^sha256://')
# Get the latest image ID from docker-compose # Get the latest image ID from docker compose
LATEST_IMAGE_ID=$(docker-compose images -q "$service" 2>/dev/null) LATEST_IMAGE_ID=$("${DC[@]}" images -q "$service" 2>/dev/null)
# If the image ID is different, restart the container # If the image ID is different, restart the container
if [ "$CURRENT_IMAGE_ID" != "$LATEST_IMAGE_ID" ] && [ -n "$LATEST_IMAGE_ID" ]; then if [ "$CURRENT_IMAGE_ID" != "$LATEST_IMAGE_ID" ] && [ -n "$LATEST_IMAGE_ID" ]; then
echo "Updating container: $service" echo "Updating container: $service"
docker-compose stop "$service" "${DC[@]}" stop "$service"
docker-compose rm -f "$service" "${DC[@]}" rm -f "$service"
docker-compose up -d "$service" "${DC[@]}" up -d "$service"
else else
echo "No update needed for: $service" echo "No update needed for: $service"
fi fi
@@ -41,8 +44,3 @@ for service in $RUNNING_CONTAINERS; do
echo "Skipping non-existent service: $service" echo "Skipping non-existent service: $service"
fi fi
done done
# Cleanup unused resources
docker container prune -f
docker image prune -f
docker volume prune -f