Files
autoclip/docker-entrypoint.sh
Kris Ka dafae474fd 🐳 修复Docker部署问题
- 修复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部署应该可以正常工作。
2025-09-25 01:54:48 +08:00

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 "$@"