Files

58 lines
2.0 KiB
Bash
Raw Permalink Normal View History

2026-07-10 18:55:55 +08:00
#!/bin/bash
set -e # 出错立即退出
# 1. 验证关键配置
echo "验证关键配置..."
[ -z "$DATABASE_URL" ] && echo "ERROR: 缺少 DATABASE_URL" && exit 1
[ -z "$DATABRICKS_HOST" ] && echo "ERROR: 缺少 DATABRICKS_HOST" && exit 1
[ -z "$DATABRICKS_TOKEN" ] && echo "ERROR: 缺少 DATABRICKS_TOKEN" && exit 1
[ -z "$DATABRICKS_CLUSTER_ID" ] && echo "ERROR: 缺少 DATABRICKS_CLUSTER_ID" && exit 1
[ -z "$JWT_SECRET_KEY" ] && echo "ERROR: 缺少 JWT_SECRET_KEY" && exit 1
[ -z "$SECRET_KEY" ] && echo "ERROR: 缺少 SECRET_KEY" && exit 1
echo "✅ 关键配置验证通过"
# 2. 激活虚拟环境
echo "激活虚拟环境..."
. /app/venv/bin/activate
echo "✅ 虚拟环境已激活"
# 3. 创建databricks-connect配置目录
echo "创建配置目录..."
mkdir -p /home/appuser/.databricks-connect
echo "✅ 配置目录创建完成"
# 4. 生成配置文件(非交互式)
echo "生成databricks-connect配置文件..."
cat > /home/appuser/.databricks-connect/config << EOF
[DEFAULT]
host = $DATABRICKS_HOST
token = $DATABRICKS_TOKEN
cluster_id = $DATABRICKS_CLUSTER_ID
port = 15001
accept_eula = yes
EOF
echo "✅ 配置文件生成完成"
# 5. 设置必要的环境变量
echo "设置环境变量..."
export SPARK_HOME="$(dirname $(which python))/../lib/python3.12/site-packages/pyspark"
export DATABRICKS_HOST="$DATABRICKS_HOST"
export DATABRICKS_TOKEN="$DATABRICKS_TOKEN"
export DATABRICKS_CLUSTER_ID="$DATABRICKS_CLUSTER_ID"
export DATABRICKS_PORT=15001
export PATH="$PATH:/app/venv/bin"
echo "✅ 环境变量设置完成"
echo "SPARK_HOME=$SPARK_HOME"
# 6. 验证配置
echo "验证 databricks-connect 配置..."
if databricks-connect test; then
echo "✅ databricks-connect 配置验证成功"
else
echo "❌ databricks-connect 配置验证失败,但继续启动服务..."
# 这里不退出,因为有时测试会失败但实际连接是正常的
fi
# 7. 启动 Flask 服务
echo "启动 Flask 服务..."
exec gunicorn --bind 0.0.0.0:5221 --workers 14 --timeout 600 "$FLASK_APP"