mirror of
https://github.com/zhouxiaoka/autoclip.git
synced 2026-09-03 06:24:14 +08:00
- 修复Redis连接地址硬编码问题,使用环境变量REDIS_URL - 添加缺失的Python依赖:pysrt和psutil - 修复Docker构建中的Rollup兼容性问题,使用node:18-slim - 修复容器启动脚本的node环境检查问题 - 修复data目录权限问题 - 修复docker-compose.yml版本警告 - 创建专门的Docker启动脚本和开发环境配置 - 优化Dockerfile构建流程和错误处理 解决的主要问题: 1. 构建阶段失败 - Rollup模块兼容性 2. 依赖缺失 - pysrt和psutil 3. 运行时失败 - Redis硬编码和权限问题 4. 开发环境vite命令找不到问题 现在Docker部署应该可以正常工作。
49 lines
1.2 KiB
Bash
Executable File
49 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Docker容器启动脚本
|
||
# 专门为Docker环境设计,解决权限和配置问题
|
||
|
||
set -euo pipefail
|
||
|
||
# 设置环境变量
|
||
export PYTHONPATH=/app
|
||
export PYTHONUNBUFFERED=1
|
||
|
||
# 确保数据目录存在且有正确权限
|
||
mkdir -p /app/data/projects /app/data/uploads /app/data/temp /app/data/output /app/logs
|
||
|
||
# 如果数据目录为空,创建必要的文件
|
||
if [[ ! -f /app/data/autoclip.db ]]; then
|
||
echo "初始化数据库..."
|
||
python -c "
|
||
import sys
|
||
sys.path.insert(0, '/app')
|
||
from backend.core.database import engine, Base
|
||
from backend.models import project, task, clip, collection, bilibili
|
||
try:
|
||
Base.metadata.create_all(bind=engine)
|
||
print('数据库初始化成功')
|
||
except Exception as e:
|
||
print(f'数据库初始化失败: {e}')
|
||
sys.exit(1)
|
||
"
|
||
fi
|
||
|
||
# 检查Redis连接
|
||
echo "检查Redis连接..."
|
||
python -c "
|
||
import os
|
||
import redis
|
||
try:
|
||
redis_url = os.getenv('REDIS_URL', 'redis://redis:6379/0')
|
||
r = redis.Redis.from_url(redis_url, decode_responses=True)
|
||
r.ping()
|
||
print(f'Redis连接成功: {redis_url}')
|
||
except Exception as e:
|
||
print(f'Redis连接失败: {e}')
|
||
print('将使用SQLite作为备选存储')
|
||
"
|
||
|
||
# 启动应用
|
||
echo "启动AutoClip应用..."
|
||
exec "$@" |