102 lines
3.0 KiB
Bash
102 lines
3.0 KiB
Bash
#!/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🎉 所有操作已完成。"
|