Files
Incidents-Data-Portal/backend/entrypoint.sh
T
2026-07-10 18:55:55 +08:00

58 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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"