#!/bin/bash set -e ENV_FILE=".env" MAIN_COMPOSE_FILE="docker-compose.yml" # 检查 .env 文件 if [ ! -f "$ENV_FILE" ]; then echo "错误:当前目录下未找到 $ENV_FILE 文件。" exit 1 fi echo "正在从 $ENV_FILE 读取环境变量..." DEPLOYMENT_USE=$(grep -v '^$' "$ENV_FILE" | grep -v '^#' | grep '^DEPLOYMENT_USE=' | sed 's/^DEPLOYMENT_USE=//' | sed 's/["'\''"]//g') if [ -z "$DEPLOYMENT_USE" ]; then echo "错误:未找到有效的 DEPLOYMENT_USE 配置。" exit 1 fi echo "成功读取 DEPLOYMENT_USE: $DEPLOYMENT_USE" # 创建宿主机目录 if [ ! -d "$DEPLOYMENT_USE" ]; then echo "宿主机目录 $DEPLOYMENT_USE 不存在,正在创建..." mkdir -p "$DEPLOYMENT_USE" || { echo "错误:无法创建目录,请检查权限。"; exit 1; } fi echo "正在从 $ENV_FILE 读取环境变量..." VOLUMES_USE=$(grep -v '^$' "$ENV_FILE" | grep -v '^#' | grep '^VOLUMES_USE=' | sed 's/^VOLUMES_USE=//' | sed 's/["'\''"]//g') if [ -z "$VOLUMES_USE" ]; then echo "错误:未找到有效的 VOLUMES_USE 配置。" exit 1 fi echo "成功读取 VOLUMES_USE: $VOLUMES_USE" # 创建宿主机目录 if [ ! -d "$VOLUMES_USE" ]; then echo "宿主机目录 $VOLUMES_USE 不存在,正在创建..." mkdir -p "$VOLUMES_USE" || { echo "错误:无法创建目录,请检查权限。"; exit 1; } fi echo "正在创建 volumes 子目录..." mkdir -p \ ${VOLUMES_USE}/web-property-owner-data \ ${VOLUMES_USE}/web-property-owner-conf \ ${VOLUMES_USE}/web-iot-data \ ${VOLUMES_USE}/web-iot-config \ ${VOLUMES_USE}/web-property-data \ ${VOLUMES_USE}/web-property-conf \ ${VOLUMES_USE}/zookeeper-data \ ${VOLUMES_USE}/zookeeper-conf \ ${VOLUMES_USE}/zookeeper-logs \ ${VOLUMES_USE}/kafka-data \ ${VOLUMES_USE}/kafka-conf \ ${VOLUMES_USE}/kafka-logs \ ${VOLUMES_USE}/mqtt-data \ ${VOLUMES_USE}/mqtt-config \ ${VOLUMES_USE}/mqtt-log \ ${VOLUMES_USE}/mysql-data \ ${VOLUMES_USE}/mysql-conf \ ${VOLUMES_USE}/mysql-log \ ${VOLUMES_USE}/mysql-files \ ${VOLUMES_USE}/redis-data \ ${VOLUMES_USE}/redis-conf \ ${VOLUMES_USE}/backend-property-logs \ ${VOLUMES_USE}/backend-property-data \ ${VOLUMES_USE}/backend-iot-logs \ ${VOLUMES_USE}/web-property-staff-conf \ ${VOLUMES_USE}/backend-iot-data echo "🎉 所有 volumes 子目录创建完成!" # 是否赋权 read -p "是否需要为目录 $VOLUMES_USE 及其子目录赋予当前用户权限?(y/n, 默认: y): " response response=${response:-y} if [[ "$response" =~ ^[Yy]$ ]]; then echo "正在赋予权限..." sudo chown -R "$(whoami):$(whoami)" "$VOLUMES_USE" echo "✅ 权限调整完成!" else echo "ℹ️ 已跳过权限调整。" fi # 启动主 docker-compose if [ ! -f "$MAIN_COMPOSE_FILE" ]; then echo "⚠️ 警告:未找到 $MAIN_COMPOSE_FILE,跳过启动步骤。" else echo "正在执行:docker-compose -f $MAIN_COMPOSE_FILE up -d" docker-compose -f "$MAIN_COMPOSE_FILE" up -d echo "🚀 主服务已启动!" fi echo -e "\n🎉 所有操作已完成。"