#!/bin/bash set -euo pipefail image_arch() { case "$(uname -m)" in x86_64|amd64) echo "amd64" ;; aarch64|arm64) echo "arm64" ;; *) return 1 ;; esac } image_path() { local arch="$1" local primary="$TRIM_APPDEST/docker/havline-${TRIM_APPVER}-${arch}.tar.gz" if [ -f "$primary" ]; then echo "$primary" return 0 fi find "$TRIM_APPDEST" -name "havline-${TRIM_APPVER}-${arch}.tar.gz" 2>/dev/null | head -n 1 } load_offline_image() { local arch path arch="$(image_arch)" || { echo "不支持的设备架构:$(uname -m)" > "$TRIM_TEMP_LOGFILE" exit 1 } path="$(image_path "$arch")" if [ -z "$path" ] || [ ! -f "$path" ]; then echo "找不到离线镜像:havline-${TRIM_APPVER}-${arch}.tar.gz" > "$TRIM_TEMP_LOGFILE" exit 1 fi if ! docker load -i "$path" >/dev/null 2>&1; then echo "加载离线镜像失败:$path" > "$TRIM_TEMP_LOGFILE" exit 1 fi if ! docker image inspect "havline:${TRIM_APPVER}" >/dev/null 2>&1; then echo "离线镜像加载后未找到 havline:${TRIM_APPVER}" > "$TRIM_TEMP_LOGFILE" exit 1 fi echo "离线镜像已加载:$path" }