Files
autoclip/docker-entrypoint.sh
Kris Ka 1efc5eb232 🐳 修复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
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "$@"