#!/usr/bin/env bash # 创建宿主机数据目录 /var/container/data/datahub/ # 所有运行期产物(数据卷 + env 配置)统一放在此根目录下 # # 用法:bash setup-data-dirs.sh set -euo pipefail DATA_BASE=/var/container/data/datahub SUBDIRS=(postgres rabbitmq backend-runtime env) # 1. 父目录需要 root 创建并把所有权移交给当前用户 if [ ! -d "$DATA_BASE" ]; then echo "[*] $DATA_BASE 不存在,需要 sudo 创建" sudo mkdir -p "$DATA_BASE" sudo chown "$USER:$USER" "$DATA_BASE" fi # 2. 创建子目录 for d in "${SUBDIRS[@]}"; do full="$DATA_BASE/$d" if [ -d "$full" ]; then echo "[=] $full 已存在,跳过" else mkdir -p "$full" echo "[+] 创建 $full" fi done echo echo "完成。当前结构:" ls -la "$DATA_BASE" echo echo "说明:" echo " - postgres / rabbitmq 目录在容器首次启动时由 podman 自动 chown 给容器内用户(:U 标志)" echo " - backend-runtime 容器以 root 运行,无需额外 chown" echo " - env/ 存放 datahub-backend.env / datahub-frontend.env(由 configure-env.sh 生成)"