quanyoumi/docker-entrypoint.sh

56 lines
2.0 KiB
Bash

#!/bin/sh
set -e
echo "=========================================="
echo "泉友米车友会 - 启动中..."
echo "=========================================="
# 检查数据库文件
DB_FILE="/app/data/database.sqlite"
if [ -f "$DB_FILE" ]; then
echo "✓ 发现已存在的数据库文件"
# 检查是否有备份表残留(这会导致sync失败)
if sqlite3 "$DB_FILE" "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_backup%';" 2>/dev/null | grep -q "_backup"; then
echo "⚠ 检测到备份表残留,清理中..."
sqlite3 "$DB_FILE" "SELECT 'DROP TABLE IF EXISTS ' || name || ';' FROM sqlite_master WHERE type='table' AND name LIKE '%_backup%';" | sqlite3 "$DB_FILE" 2>/dev/null || true
echo "✓ 备份表已清理"
fi
else
echo "✓ 首次启动,将创建新数据库"
fi
# 初始化数据库
echo "初始化数据库..."
node init-admin.js
# 替换前端 index.html 中的环境变量占位符
if [ -f "/app/public/index.html" ]; then
echo "配置高德地图 Key..."
# 使用环境变量替换占位符(直接修改文件)
AMAP_KEY="${AMAP_KEY:-YOUR_AMAP_KEY_PLACEHOLDER}"
AMAP_SECURITY_CODE="${AMAP_SECURITY_CODE:-YOUR_AMAP_SECURITY_CODE_PLACEHOLDER}"
# 使用 sed -i 直接修改文件
sed -i "s|YOUR_AMAP_KEY_PLACEHOLDER|${AMAP_KEY}|g" /app/public/index.html
sed -i "s|YOUR_AMAP_SECURITY_CODE_PLACEHOLDER|${AMAP_SECURITY_CODE}|g" /app/public/index.html
echo "环境变量注入完成:"
echo " AMAP_KEY: ${AMAP_KEY}"
echo " AMAP_SECURITY_CODE: ${AMAP_SECURITY_CODE}"
if [ "$AMAP_KEY" != "YOUR_AMAP_KEY_PLACEHOLDER" ] && [ -n "$AMAP_KEY" ]; then
echo "✓ 高德地图 Key 已配置"
else
echo "⚠ 警告: 高德地图 Key 未配置,地图功能将不可用"
echo " 请在 docker-compose.yml 中设置 AMAP_KEY 环境变量"
fi
fi
echo "=========================================="
echo "启动应用服务..."
echo "=========================================="
# 使用 dumb-init 启动应用
exec dumb-init "$@"