Files
worklist/docker-entrypoint.sh
2026-01-04 09:31:44 +00:00

60 lines
1.5 KiB
Bash

#!/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