feat: bundle multi-arch offline images into fnOS package
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
services:
|
||||
havline:
|
||||
image: jayhub.top/mrlee/havline:${TRIM_APPVER}-amd64-docker
|
||||
image: havline:${TRIM_APPVER}
|
||||
pull_policy: never
|
||||
container_name: havline
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
source "$SCRIPT_DIR/offline_image.sh"
|
||||
|
||||
mkdir -p "$TRIM_PKGVAR" "$TRIM_PKGVAR/backups"
|
||||
chown -R "$TRIM_USERNAME:$TRIM_GROUPNAME" "$TRIM_PKGVAR"
|
||||
|
||||
load_offline_image
|
||||
|
||||
echo "Havline 数据目录已准备:$TRIM_PKGVAR"
|
||||
exit 0
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/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"
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
source "$SCRIPT_DIR/offline_image.sh"
|
||||
|
||||
if [ -f "$TRIM_PKGVAR/havline.db" ] && [ ! -r "$TRIM_PKGVAR/havline.db" ]; then
|
||||
echo "数据库不可读:$TRIM_PKGVAR/havline.db" > "$TRIM_TEMP_LOGFILE"
|
||||
exit 1
|
||||
@@ -11,4 +14,6 @@ if [ -f "$TRIM_PKGVAR/session_secret" ] && [ ! -r "$TRIM_PKGVAR/session_secret"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
load_offline_image
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -3,5 +3,6 @@
|
||||
"run-as": "package"
|
||||
},
|
||||
"username": "havline",
|
||||
"groupname": "havline"
|
||||
"groupname": "havline",
|
||||
"join-groups": ["docker"]
|
||||
}
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ desktop_uidir = ui
|
||||
desktop_applaunchname = havline.main
|
||||
checkport = false
|
||||
ctl_stop = true
|
||||
changelog = 首发飞牛应用:支持安装向导、端口配置、数据持久化和应用中心升级
|
||||
changelog = 离线镜像安装:不依赖外部仓库,同时支持 amd64 与 arm64
|
||||
|
||||
Reference in New Issue
Block a user