26 lines
704 B
Bash
26 lines
704 B
Bash
#!/bin/bash
|
|
|
|
CONTAINER_NAME="$1"
|
|
BACKUP_DIR="$2"
|
|
VOLUME_NAME="$3"
|
|
|
|
if [ -z "$BACKUP_DIR" ]; then
|
|
echo "Usage: $0 <container_name> <backup_directory> <volume_name>"
|
|
exit 1
|
|
fi
|
|
if [ ! -d "$BACKUP_DIR" ]; then
|
|
echo "Directory $BACKUP_DIR does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
# Load image
|
|
docker load -i "$BACKUP_DIR/${CONTAINER_NAME}_backup.tar"
|
|
|
|
if [ ! -f "${BACKUP_DIR}/${VOLUME_NAME}".tar.gz ]; then
|
|
echo "Restoring volume ${VOLUME_NAME}"
|
|
docker volume create "$VOLUME_NAME"
|
|
docker run --rm -v "$VOLUME_NAME":/data -v "$BACKUP_DIR":/backup busybox tar xzf /backup/"$VOLUME_NAME".tar.gz -C /data
|
|
fi
|
|
|
|
echo "Restore complete. Deploy using: ${BACKUP_DIR}/${CONTAINER_NAME}_deploy.sh"
|