50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/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"
|
||
|
|
}
|