#!/bin/bash # 自定义入口脚本 # 在原始入口脚本基础上添加自动初始化功能 set -e # 设置 UTF-8 编码 export LANG=${LANG:-C.UTF-8} export LC_ALL=${LC_ALL:-C.UTF-8} export PYTHONIOENCODING=${PYTHONIOENCODING:-utf-8} # 恢复 RSA 私钥到 volume(镜像备份 → /app/api/storage/) if [ -d "/app/privkeys_backup" ] && [ ! -d "/app/api/storage/privkeys" ]; then echo "Restoring RSA private keys..." cp -r /app/privkeys_backup /app/api/storage/privkeys echo "RSA private keys restored" fi # 恢复上传文件到 volume if [ -d "/app/upload_files_backup" ] && [ ! -d "/app/api/storage/upload_files" ]; then echo "Restoring upload files..." cp -r /app/upload_files_backup /app/api/storage/upload_files echo "Upload files restored" fi # 运行数据库迁移 if [[ "${MIGRATION_ENABLED}" == "true" ]]; then echo "Running migrations" flask upgrade-db echo "Database migration completed" fi # 自动初始化管理员账号(仅在 API 模式下) if [[ "${MODE}" != "worker" && "${MODE}" != "migration" ]]; then echo "Running auto initialization..." python /app/scripts/auto_init.py || echo "Auto init failed or skipped" fi # 确保 insurance Blueprint 已注册(运行时补丁) echo "Patching app.py for insurance module..." python /app/scripts/patch_app.py || echo "Patch failed or already applied" # 执行原始命令(启动 API 服务器或 Worker) exec "$@"