fix: keep installer log outside protected directory

This commit is contained in:
2026-08-30 14:01:07 +00:00
parent b4340dcd0f
commit 83aa09c9a1
+3 -3
View File
@@ -60,8 +60,8 @@ write_probe="$INSTALL_DIR/xymediavault-write-probe-$$"
if ! touch "$write_probe" || ! rm -f "$write_probe"; then if ! touch "$write_probe" || ! rm -f "$write_probe"; then
die "安装目录不可写:$INSTALL_DIR;请使用 --install-dir 指定本机可写目录,例如 /opt/xymediavault" die "安装目录不可写:$INSTALL_DIR;请使用 --install-dir 指定本机可写目录,例如 /opt/xymediavault"
fi fi
INSTALL_LOG="$INSTALL_DIR/install.log" INSTALL_LOG="${TMPDIR:-/tmp}/xymediavault-install-$$.log"
: >"$INSTALL_LOG" : >"$INSTALL_LOG" || die "无法创建临时安装日志:$INSTALL_LOG"
chmod 600 "$INSTALL_LOG" chmod 600 "$INSTALL_LOG"
chmod 700 "$INSTALL_DIR/secrets" chmod 700 "$INSTALL_DIR/secrets"
if [[ -n $PG_PASSWORD_FILE ]]; then if [[ -n $PG_PASSWORD_FILE ]]; then
@@ -202,7 +202,7 @@ if (( EXISTING_DB )); then export XYMEDIA_EXTERNAL_MIGRATION_CONFIRM=YES; run_lo
progress '启动 XyMediaVault 服务' progress '启动 XyMediaVault 服务'
run_logged "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" up -d app || die 'XyMediaVault 启动失败' run_logged "${COMPOSE[@]}" --project-directory "$INSTALL_DIR" --env-file "$INSTALL_DIR/.env" -f "$INSTALL_DIR/compose.yaml" up -d app || die 'XyMediaVault 启动失败'
for elapsed in $(seq 0 118 2); do for elapsed in $(seq 0 118 2); do
curl --fail --silent "http://127.0.0.1:$API_PORT/api/health" >/dev/null && { printf '\033[2K\r[%d/%d] 安装完成:XyMediaVault 已就绪\n' "$TOTAL_STEPS" "$TOTAL_STEPS"; printf '管理地址:http://127.0.0.1:%s\n安装日志:%s\n' "$API_PORT" "$INSTALL_LOG"; exit 0; } curl --fail --silent "http://127.0.0.1:$API_PORT/api/health" >/dev/null && { cp "$INSTALL_LOG" "$INSTALL_DIR/install.log" 2>/dev/null || true; printf '\033[2K\r[%d/%d] 安装完成:XyMediaVault 已就绪\n' "$TOTAL_STEPS" "$TOTAL_STEPS"; printf '管理地址:http://127.0.0.1:%s\n安装日志:%s\n' "$API_PORT" "$INSTALL_LOG"; exit 0; }
printf '\033[2K\r[%d/%d] 等待 XyMediaVault 健康检查(%s 秒)' "$STEP" "$TOTAL_STEPS" "$elapsed" printf '\033[2K\r[%d/%d] 等待 XyMediaVault 健康检查(%s 秒)' "$STEP" "$TOTAL_STEPS" "$elapsed"
sleep 2 sleep 2
done done