#!/bin/bash # backup_icloud_photos.sh # Exit immediately if a command exits with a non-zero status set -e # SCRIPT_DIR="$(dirname "$(realpath "$0")")" SCRIPT_DIR="/home/john/mine/scripts/icloud_backup" # Load environment variables from .env file if [ -f "$SCRIPT_DIR/.env" ]; then export $(grep -v '^#' "$SCRIPT_DIR/.env" | xargs) else echo ".env file not found in $SCRIPT_DIR/.env!" exit 1 fi # Define variables for paths IMAGE_NAME="icloud-backup" CONTAINER_NAME="icloud-backup-container" # Build the Docker image echo "Building Docker image: $IMAGE_NAME" docker build -f "$SCRIPT_DIR/Dockerfile" -t "$IMAGE_NAME" "$SCRIPT_DIR" # Run the Docker container echo "Running Docker container: $CONTAINER_NAME" docker run --rm -it \ --name $CONTAINER_NAME \ --network immich_network \ -e "ICLOUD_USERNAME=$ICLOUD_USERNAME" \ -e "ICLOUD_PASSWORD=$ICLOUD_PASSWORD" \ -e "IMMICH_API_KEY=$IMMICH_API_KEY" \ -e "NAS_IMMICH_LIBRARY_ID=$NAS_IMMICH_LIBRARY_ID" \ -v "$SCRIPT_DIR/temp:/backup/temp" \ -v /mnt/photos_backup:/mnt/photos_backup \ -v "$SCRIPT_DIR/cookies:/app/.pyicloud" \ -v "$SCRIPT_DIR/logs:/var/log" \ $IMAGE_NAME echo "Backup process completed successfully."