mirror of
https://github.com/linshenkx/prompt-optimizer.git
synced 2026-05-06 21:50:27 +08:00
fix(docker): 增强配置生成脚本的调试和错误处理能力
- 在 generate-config.sh 中添加详细的调试日志输出 - 添加目标目录存在性检查和自动创建 - 显示所有 VITE_* 环境变量用于调试 - 验证配置文件生成结果并输出预览 - 修复字符串拼接问题,避免 \n 显示异常 - 在 start-services.sh 中添加脚本可执行性检查 - 添加 config.js 生成验证和手动重试机制 - 改进错误提示和日志输出格式 关联: #186
This commit is contained in:
@@ -3,12 +3,27 @@
|
||||
# 配置文件路径
|
||||
CONFIG_FILE="/usr/share/nginx/html/config.js"
|
||||
|
||||
echo "========================================="
|
||||
echo "开始生成运行时配置文件..."
|
||||
echo "目标文件: $CONFIG_FILE"
|
||||
echo "========================================="
|
||||
|
||||
# 检查目标目录是否存在
|
||||
TARGET_DIR=$(dirname "$CONFIG_FILE")
|
||||
if [ ! -d "$TARGET_DIR" ]; then
|
||||
echo "ERROR: 目标目录不存在: $TARGET_DIR"
|
||||
mkdir -p "$TARGET_DIR" || echo "ERROR: 无法创建目录"
|
||||
fi
|
||||
|
||||
# 构建包含全部 VITE_* 变量的运行时配置(同时注入带前缀与不带前缀的键)
|
||||
CONFIG_BODY=""
|
||||
COUNT=0
|
||||
|
||||
# 显示所有VITE_*环境变量用于调试
|
||||
echo "扫描VITE_*环境变量..."
|
||||
env | grep '^VITE_' || echo "未找到任何VITE_*变量"
|
||||
echo "========================================="
|
||||
|
||||
# 遍历所有以 VITE_ 开头的环境变量
|
||||
for var in $(env | grep '^VITE_[A-Za-z0-9_]*=' | cut -d= -f1 | sort); do
|
||||
value=$(printenv "$var" 2>/dev/null)
|
||||
@@ -20,9 +35,11 @@ for var in $(env | grep '^VITE_[A-Za-z0-9_]*=' | cut -d= -f1 | sort); do
|
||||
|
||||
# 追加属性:无前缀副本 与 带前缀副本
|
||||
if [ -n "$CONFIG_BODY" ]; then
|
||||
CONFIG_BODY="$CONFIG_BODY,\n"
|
||||
CONFIG_BODY="${CONFIG_BODY},
|
||||
"
|
||||
fi
|
||||
CONFIG_BODY="$CONFIG_BODY $no_prefix_key: \"$escaped_value\",\n $var: \"$escaped_value\""
|
||||
CONFIG_BODY="${CONFIG_BODY} ${no_prefix_key}: \"${escaped_value}\",
|
||||
${var}: \"${escaped_value}\""
|
||||
|
||||
COUNT=$((COUNT + 1))
|
||||
echo "Found VITE var: $var"
|
||||
@@ -39,5 +56,20 @@ ${CONFIG_BODY}
|
||||
console.log("运行时配置已加载,共注入 ${COUNT} 个 VITE_* 变量(双份键)");
|
||||
EOF
|
||||
|
||||
echo "========================================="
|
||||
echo "配置文件已生成: $CONFIG_FILE"
|
||||
echo "已注入 VITE_* 变量数量: $COUNT"
|
||||
echo "========================================="
|
||||
|
||||
# 验证文件是否成功生成
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
echo "✅ 配置文件生成成功"
|
||||
echo "文件大小: $(wc -c < "$CONFIG_FILE") bytes"
|
||||
echo "前10行内容:"
|
||||
head -n 10 "$CONFIG_FILE"
|
||||
else
|
||||
echo "❌ ERROR: 配置文件生成失败!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "========================================="
|
||||
|
||||
@@ -12,12 +12,26 @@ echo "Nginx configuration updated with NGINX_PORT=${NGINX_PORT}"
|
||||
# 运行原有的nginx初始化脚本
|
||||
echo "Running nginx initialization scripts..."
|
||||
for script in /docker-entrypoint.d/*.sh; do
|
||||
if [ -f "$script" ]; then
|
||||
if [ -f "$script" ] && [ -x "$script" ]; then
|
||||
echo "Running $script"
|
||||
sh "$script"
|
||||
sh "$script" || echo "WARNING: $script failed with exit code $?"
|
||||
elif [ -f "$script" ]; then
|
||||
echo "WARNING: $script is not executable, attempting to run anyway..."
|
||||
sh "$script" || echo "WARNING: $script failed with exit code $?"
|
||||
fi
|
||||
done
|
||||
|
||||
# 验证config.js是否已生成
|
||||
if [ -f "/usr/share/nginx/html/config.js" ]; then
|
||||
echo "✅ config.js generated successfully"
|
||||
echo "Content preview:"
|
||||
head -n 5 /usr/share/nginx/html/config.js
|
||||
else
|
||||
echo "❌ ERROR: config.js was not generated!"
|
||||
echo "Attempting manual generation..."
|
||||
sh /docker-entrypoint.d/40-generate-config.sh || echo "Manual generation failed"
|
||||
fi
|
||||
|
||||
echo "Starting services with supervisor..."
|
||||
echo "MCP Server will run on port: ${MCP_HTTP_PORT}"
|
||||
echo "MCP Server log level: ${MCP_LOG_LEVEL}"
|
||||
|
||||
Reference in New Issue
Block a user