62 lines
1.6 KiB
Bash
62 lines
1.6 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 读取环境变量..."
|
||
SSL_USE=$(grep -v '^$' "$ENV_FILE" | grep -v '^#' | grep '^SSL_USE=' | sed 's/^SSL_USE=//' | sed 's/["'\''"]//g')
|
||
|
||
if [ -z "$SSL_USE" ]; then
|
||
echo "错误:未找到有效的 SSL_USE 配置。"
|
||
exit 1
|
||
fi
|
||
|
||
echo "成功读取 SSL_USE: $SSL_USE"
|
||
|
||
# 创建宿主机目录
|
||
if [ ! -d "$SSL_USE" ]; then
|
||
echo "宿主机目录 $SSL_USE 不存在,正在创建..."
|
||
mkdir -p "$SSL_USE" || { echo "错误:无法创建目录,请检查权限。"; exit 1; }
|
||
fi
|
||
|
||
echo "正在创建 volumes 子目录..."
|
||
|
||
mkdir -p \
|
||
"${SSL_USE}/certbot-www" \
|
||
"${SSL_USE}/certbot-conf" \
|
||
"${SSL_USE}/apply-nginx-log" \
|
||
"${SSL_USE}/proxy-nginx-log"
|
||
|
||
|
||
echo "🎉 所有 volumes 子目录创建完成!"
|
||
|
||
# 是否赋权
|
||
read -p "是否需要为目录 $SSL_USE 及其子目录赋予当前用户权限?(y/n, 默认: y): " response
|
||
response=${response:-y}
|
||
|
||
if [[ "$response" =~ ^[Yy]$ ]]; then
|
||
echo "正在赋予权限..."
|
||
sudo chown -R "$(whoami):$(whoami)" "$SSL_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🎉 所有操作已完成。"
|