's'
This commit is contained in:
@@ -59,6 +59,22 @@ compose_run() {
|
||||
fi
|
||||
}
|
||||
|
||||
compose_in_service_dir() {
|
||||
local compose_file="$1"
|
||||
shift
|
||||
local d base
|
||||
d="$(cd "$(dirname "$compose_file")" && pwd)"
|
||||
base="$(basename "$compose_file")"
|
||||
(
|
||||
cd "$d" || exit 1
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
docker compose -f "$base" "$@"
|
||||
else
|
||||
docker-compose -f "$base" "$@"
|
||||
fi
|
||||
)
|
||||
}
|
||||
|
||||
as_live() {
|
||||
runuser -u live -- bash -lc "cd '$ROOT_DIR' && $*"
|
||||
}
|
||||
@@ -435,10 +451,7 @@ install_neko_browser() {
|
||||
export NEKO_WEBRTC_NAT1TO1
|
||||
fi
|
||||
export NEKO_PLUGINS_ENABLED="${NEKO_PLUGINS_ENABLED:-true}"
|
||||
(
|
||||
cd "$neko_dir" || exit 1
|
||||
compose_run "$neko_dir/docker-compose.yml" up -d
|
||||
)
|
||||
compose_in_service_dir "$neko_dir/docker-compose.yml" up -d
|
||||
}
|
||||
|
||||
configure_adb_udev() {
|
||||
@@ -642,7 +655,7 @@ prepare_homepage() {
|
||||
fi
|
||||
log "Preparing Homepage"
|
||||
render_homepage_services
|
||||
compose_run "$ROOT_DIR/services/homepage/docker-compose.yml" up -d
|
||||
compose_in_service_dir "$ROOT_DIR/services/homepage/docker-compose.yml" up -d
|
||||
}
|
||||
|
||||
prepare_filebrowser() {
|
||||
@@ -660,7 +673,7 @@ prepare_filebrowser() {
|
||||
rm -f "$fb_db"
|
||||
touch "$fb_db"
|
||||
chmod -R 0777 "$ROOT_DIR/services/filebrowser/database" "$ROOT_DIR/services/filebrowser/config"
|
||||
compose_run "$ROOT_DIR/services/filebrowser/docker-compose.yml" down >/dev/null 2>&1 || true
|
||||
compose_in_service_dir "$ROOT_DIR/services/filebrowser/docker-compose.yml" down >/dev/null 2>&1 || true
|
||||
|
||||
docker run --rm \
|
||||
-v "$fb_db_dir:/database" \
|
||||
@@ -736,7 +749,7 @@ PY
|
||||
rm -f "$fb_cfg_dir/users.backup.json"
|
||||
rm -f "$fb_tmp_json"
|
||||
|
||||
compose_run "$ROOT_DIR/services/filebrowser/docker-compose.yml" up -d
|
||||
compose_in_service_dir "$ROOT_DIR/services/filebrowser/docker-compose.yml" up -d
|
||||
}
|
||||
|
||||
prepare_srs() {
|
||||
@@ -745,7 +758,7 @@ prepare_srs() {
|
||||
fi
|
||||
log "Starting SRS"
|
||||
mkdir -p "$ROOT_DIR/services/srs/data"
|
||||
compose_run "$ROOT_DIR/services/srs/docker-compose.yml" up -d
|
||||
compose_in_service_dir "$ROOT_DIR/services/srs/docker-compose.yml" up -d
|
||||
}
|
||||
|
||||
run_hardware_probe() {
|
||||
@@ -775,9 +788,9 @@ install_live_edge_proxy() {
|
||||
if [ -f "$ROOT_DIR/config/system-stack.env" ] && grep -q '^HOMEPAGE_PORT=80' "$ROOT_DIR/config/system-stack.env"; then
|
||||
sed -i 's/^HOMEPAGE_PORT=80$/HOMEPAGE_PORT=3080/' "$ROOT_DIR/config/system-stack.env" || true
|
||||
fi
|
||||
compose_run "$ROOT_DIR/services/homepage/docker-compose.yml" down >/dev/null 2>&1 || true
|
||||
compose_in_service_dir "$ROOT_DIR/services/homepage/docker-compose.yml" down >/dev/null 2>&1 || true
|
||||
render_homepage_services
|
||||
compose_run "$ROOT_DIR/services/homepage/docker-compose.yml" up -d || true
|
||||
compose_in_service_dir "$ROOT_DIR/services/homepage/docker-compose.yml" up -d || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -88,6 +88,24 @@ compose_run() {
|
||||
fi
|
||||
}
|
||||
|
||||
# docker-compose v1 将 ./卷 解析为当前工作目录,必须在 compose 文件所在目录执行(与 Neko 一致)
|
||||
compose_in_service_dir() {
|
||||
local compose_file="$1"
|
||||
shift
|
||||
local d base
|
||||
d="$(cd "$(dirname "$compose_file")" && pwd)"
|
||||
base="$(basename "$compose_file")"
|
||||
(
|
||||
cd "$d" || exit 1
|
||||
cmd="$(compose_bin)" || exit 1
|
||||
if [ "$cmd" = "docker compose" ]; then
|
||||
docker compose -f "$base" "$@"
|
||||
else
|
||||
docker-compose -f "$base" "$@"
|
||||
fi
|
||||
)
|
||||
}
|
||||
|
||||
docker_container_status() {
|
||||
local name="$1"
|
||||
if ! have docker; then
|
||||
@@ -227,12 +245,12 @@ service_srs_status() {
|
||||
}
|
||||
|
||||
service_srs_start() {
|
||||
compose_run "$SRS_COMPOSE" up -d
|
||||
compose_in_service_dir "$SRS_COMPOSE" up -d
|
||||
kv message "SRS started"
|
||||
}
|
||||
|
||||
service_srs_stop() {
|
||||
compose_run "$SRS_COMPOSE" down
|
||||
compose_in_service_dir "$SRS_COMPOSE" down
|
||||
kv message "SRS stopped"
|
||||
}
|
||||
|
||||
@@ -310,12 +328,12 @@ service_filebrowser_status() {
|
||||
}
|
||||
|
||||
service_filebrowser_start() {
|
||||
compose_run "$FILEBROWSER_COMPOSE" up -d
|
||||
compose_in_service_dir "$FILEBROWSER_COMPOSE" up -d
|
||||
kv message "File Browser started"
|
||||
}
|
||||
|
||||
service_filebrowser_stop() {
|
||||
compose_run "$FILEBROWSER_COMPOSE" down
|
||||
compose_in_service_dir "$FILEBROWSER_COMPOSE" down
|
||||
kv message "File Browser stopped"
|
||||
}
|
||||
|
||||
@@ -339,12 +357,12 @@ service_homepage_status() {
|
||||
}
|
||||
|
||||
service_homepage_start() {
|
||||
compose_run "$HOMEPAGE_COMPOSE" up -d
|
||||
compose_in_service_dir "$HOMEPAGE_COMPOSE" up -d
|
||||
kv message "Homepage started"
|
||||
}
|
||||
|
||||
service_homepage_stop() {
|
||||
compose_run "$HOMEPAGE_COMPOSE" down
|
||||
compose_in_service_dir "$HOMEPAGE_COMPOSE" down
|
||||
kv message "Homepage stopped"
|
||||
}
|
||||
|
||||
@@ -451,7 +469,12 @@ service_chromium_status() {
|
||||
}
|
||||
|
||||
service_chromium_start() {
|
||||
nohup "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
|
||||
if [ -z "${DISPLAY:-}" ] && command -v xvfb-run >/dev/null 2>&1; then
|
||||
nohup xvfb-run -a "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
|
||||
else
|
||||
[ -z "${DISPLAY:-}" ] && export DISPLAY=:0
|
||||
nohup "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
|
||||
fi
|
||||
disown || true
|
||||
kv message "Chromium launched"
|
||||
}
|
||||
@@ -503,8 +526,6 @@ service_neko_start() {
|
||||
kv message "Neko compose missing"
|
||||
return 0
|
||||
fi
|
||||
local neko_dir
|
||||
neko_dir="$(cd "$(dirname "$NEKO_COMPOSE")" && pwd)"
|
||||
local prof="${NEKO_PROFILE_HOST_DIR:-$ROOT_DIR/services/neko/data/chromium-profile}"
|
||||
mkdir -p "$prof"
|
||||
chmod 777 "$prof" 2>/dev/null || true
|
||||
@@ -520,18 +541,7 @@ service_neko_start() {
|
||||
export NEKO_WEBRTC_NAT1TO1="$(hostname -I 2>/dev/null | awk '{print $1}')"
|
||||
fi
|
||||
export NEKO_PLUGINS_ENABLED="${NEKO_PLUGINS_ENABLED:-true}"
|
||||
cmd="$(compose_bin)" || {
|
||||
kv message "docker compose unavailable"
|
||||
return 0
|
||||
}
|
||||
(
|
||||
cd "$neko_dir" || exit 1
|
||||
if [ "$cmd" = "docker compose" ]; then
|
||||
docker compose -f docker-compose.yml up -d
|
||||
else
|
||||
docker-compose -f docker-compose.yml up -d
|
||||
fi
|
||||
)
|
||||
compose_in_service_dir "$NEKO_COMPOSE" up -d
|
||||
kv message "Neko stack started"
|
||||
}
|
||||
|
||||
@@ -540,20 +550,7 @@ service_neko_stop() {
|
||||
kv message "Neko compose missing"
|
||||
return 0
|
||||
fi
|
||||
local neko_dir
|
||||
neko_dir="$(cd "$(dirname "$NEKO_COMPOSE")" && pwd)"
|
||||
cmd="$(compose_bin)" || {
|
||||
kv message "docker compose unavailable"
|
||||
return 0
|
||||
}
|
||||
(
|
||||
cd "$neko_dir" || exit 1
|
||||
if [ "$cmd" = "docker compose" ]; then
|
||||
docker compose -f docker-compose.yml down
|
||||
else
|
||||
docker-compose -f docker-compose.yml down
|
||||
fi
|
||||
)
|
||||
compose_in_service_dir "$NEKO_COMPOSE" down
|
||||
kv message "Neko stack stopped"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user