#!/bin/bash set -e echo "正在启动工作任务管理系统..." # 确保 data 目录存在并设置正确权限 echo "设置数据目录权限..." mkdir -p /app/data # 修改目录和所有文件的权限,确保可读写 chmod -R 777 /app/data # 如果数据库文件存在,确保它也有写权限 if [ -f /app/data/worklist.db ]; then chmod 666 /app/data/worklist.db echo "数据库文件权限已更新" fi # 切换到backend目录 cd /app/backend # 等待数据库初始化 echo "初始化数据库..." python -c " from database import init_db, SessionLocal from models import User import os # 初始化数据库 init_db() # 创建会话 db = SessionLocal() try: # 检查是否已有用户 existing_user = db.query(User).first() if not existing_user: # 从环境变量获取默认用户信息 default_username = os.getenv('DEFAULT_USERNAME', 'admin') default_password = os.getenv('DEFAULT_PASSWORD', 'admin123') # 创建默认用户 user = User(username=default_username) user.set_password(default_password) db.add(user) db.commit() print(f'已创建默认用户: {default_username}') print(f'默认密码: {default_password}') print('请登录后立即修改密码!') else: print('用户已存在,跳过初始化') finally: db.close() " echo "启动FastAPI应用..." # 启动应用 (使用uvicorn) exec uvicorn app:app --host 0.0.0.0 --port 5000