All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 7s
42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# shellcheck disable=SC1091
|
|
source "${AGENT_PATH}/common.sh"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/_volumes.sh"
|
|
_check_required_env_vars "CONTAINER_NAME" "DATA_PATH"
|
|
|
|
# Export variables for docker compose
|
|
export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG
|
|
export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD
|
|
export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ
|
|
|
|
cd "$SCRIPT_DIR" || _die "Failed to change to script directory"
|
|
|
|
# Stop and remove containers before restore
|
|
docker compose -p "${CONTAINER_NAME}" down
|
|
|
|
# Restore files using dropshell's restore system
|
|
# shellcheck disable=SC2046
|
|
restore_items $(get_seafile_volumes) || _die "Failed to restore data from backup file"
|
|
|
|
# Start database container only
|
|
docker compose -p "${CONTAINER_NAME}" up -d db
|
|
echo "Waiting for database to be ready..."
|
|
sleep 10
|
|
|
|
# Restore database if dump exists
|
|
if [ -f "${DATA_PATH}/database.sql" ]; then
|
|
echo "Restoring MariaDB database..."
|
|
docker exec -i "${CONTAINER_NAME}_db" mariadb -u root -p"${MYSQL_ROOT_PASSWORD}" < "${DATA_PATH}/database.sql" || _die "Failed to restore database"
|
|
# Clean up dump file
|
|
rm -f "${DATA_PATH}/database.sql"
|
|
echo "Database restored successfully"
|
|
else
|
|
echo "Warning: No database dump found in backup"
|
|
fi
|
|
|
|
# Start all containers
|
|
docker compose -p "${CONTAINER_NAME}" up -d
|
|
|
|
echo "Restore complete! Service is running."
|