#!/usr/bin/env bash set -euo pipefail umask 027 cd "$(dirname "$0")" command -v docker >/dev/null 2>&1 || { echo "[error] Docker 未安装或不在 PATH 中" >&2 exit 1 } command -v zstd >/dev/null 2>&1 || { echo "[error] 缺少 zstd,无法导入离线镜像" >&2 exit 1 } docker info >/dev/null 2>&1 || { echo "[error] Docker daemon 未运行" >&2 exit 1 } docker compose version >/dev/null 2>&1 || { echo "[error] 需要 Docker Compose v2" >&2 exit 1 } sha256sum -c SHA256SUMS if [[ ! -f bbav5.env ]]; then cp bbav5.env.example bbav5.env chmod 600 bbav5.env echo "[init] 已创建 bbav5.env,请在启动前填写数据库密码和模型配置" fi mkdir -p \ input workspace data logs models \ service_data/memory_storage \ service_data/cost_logs \ service_data/reproducibility \ service_data/redis \ service_data/qdrant \ service_data/neo4j shopt -s nullglob archives=(images/*.tar.zst) (( ${#archives[@]} > 0 )) || { echo "[error] images/ 下没有离线镜像包" >&2 exit 1 } for archive in "${archives[@]}"; do echo "[load] $archive" zstd -dc "$archive" | docker load done docker compose --env-file bbav5.env -f docker-compose.yml config >/dev/null echo "[ok] 安装准备完成" echo "[next] 编辑 bbav5.env,然后执行 ./start.sh"