50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 加载环境变量
|
|||
|
|
source ../environment.sh
|
|||
|
|
|
|||
|
|
echo "开始替换配置文件中的环境变量..."
|
|||
|
|
|
|||
|
|
# 检查vhosts目录是否存在
|
|||
|
|
if [ ! -d "vhosts" ]; then
|
|||
|
|
echo "错误: vhosts目录不存在!"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 检查vhosts目录中是否有配置文件
|
|||
|
|
if [ -z "$(ls -A vhosts)" ]; then
|
|||
|
|
echo "警告: vhosts目录为空,没有配置文件需要处理"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 创建临时目录
|
|||
|
|
TEMP_DIR="temp_vhosts"
|
|||
|
|
rm -rf $TEMP_DIR
|
|||
|
|
mkdir -p $TEMP_DIR
|
|||
|
|
|
|||
|
|
# 处理所有.conf文件,替换环境变量
|
|||
|
|
for conf_file in vhosts/*.conf; do
|
|||
|
|
filename=$(basename "$conf_file")
|
|||
|
|
echo "处理文件: $filename"
|
|||
|
|
|
|||
|
|
# 复制原始文件到临时目录
|
|||
|
|
cp "$conf_file" "$TEMP_DIR/$filename"
|
|||
|
|
|
|||
|
|
# 获取environment.sh中所有环境变量
|
|||
|
|
env_vars=$(grep -E "^export [A-Z_]+" ../environment.sh | sed 's/export //')
|
|||
|
|
|
|||
|
|
# 使用envsubst命令替换变量(同时兼容Linux和Mac)
|
|||
|
|
# 创建环境变量列表用于envsubst
|
|||
|
|
env_list=""
|
|||
|
|
for var in $env_vars; do
|
|||
|
|
var_name=$(echo $var | cut -d= -f1)
|
|||
|
|
env_list="$env_list \${$var_name}"
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
# 使用envsubst进行替换
|
|||
|
|
cat "$conf_file" | envsubst "$env_list" > "$TEMP_DIR/$filename"
|
|||
|
|
|
|||
|
|
echo " 文件处理完成: $filename"
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
echo "环境变量替换完成! 替换后的文件位于 $TEMP_DIR/ 目录"
|
|||
|
|
echo "请检查替换结果,确认无误后运行 build_image.sh 构建镜像"
|