File size: 2,068 Bytes
c1ccdca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e1ffe54
 
c1ccdca
 
 
 
 
 
 
 
 
e1ffe54
c1ccdca
 
e1ffe54
 
 
 
 
 
c1ccdca
 
 
 
 
 
 
 
 
 
 
e1ffe54
 
c1ccdca
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
set -e

mkdir -p /app/logs 2>/dev/null || true

log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a /app/logs/entrypoint.log 2>/dev/null || echo "$(date '+%Y-%m-%d %H:%M:%S') - $1"
}

log "容器启动中..."

SYNC_INTERVAL="${SYNC_INTERVAL:-60}"
log "设置同步间隔: ${SYNC_INTERVAL}分钟"

DB_PATH="${DB_PATH:-/app/db}"
BACKUP_PATH="${BACKUP_PATH:-/app/backup}"
REMOTE_BACKUP_DIR="${REMOTE_BACKUP_DIR:-tgdrive_backup}"
BACKUP_FILENAME="${BACKUP_FILENAME:-tgdrive_db_backup.tar.gz}"

mkdir -p "$DB_PATH" 2>/dev/null || true
mkdir -p "$BACKUP_PATH" 2>/dev/null || true
chmod -R 777 "$DB_PATH" 2>/dev/null || true
chmod -R 777 "$BACKUP_PATH" 2>/dev/null || true

log "数据库路径: ${DB_PATH}"
log "备份路径: ${BACKUP_PATH}"
log "远程备份目录: ${REMOTE_BACKUP_DIR}"
log "备份文件名: ${BACKUP_FILENAME}"

if [ -n "$WEBDAV_URL" ] && [ -n "$WEBDAV_USERNAME" ] && [ -n "$WEBDAV_PASSWORD" ]; then
    log "检测到WebDAV配置,尝试初始同步..."
    
    /app/sync-script.sh restore || log "首次恢复尝试失败,可能是首次运行或WebDAV上没有备份或权限问题"
    
    log "设置定时同步任务..."
    (
        while true; do
            sleep $((SYNC_INTERVAL * 60))
            /app/sync-script.sh sync >> /app/logs/sync_cron.log 2>&1 || log "同步任务执行失败" >> /app/logs/sync_cron.log 2>&1
        done
    ) &
    
    log "后台同步服务已启动,每${SYNC_INTERVAL}分钟执行一次"
else
    log "未检测到WebDAV配置,跳过同步设置"
fi

log "tgDrive 同步版本启动成功"

trap_handler() {
    log "接收到停止信号,执行备份..."
    if [ -n "$WEBDAV_URL" ] && [ -n "$WEBDAV_USERNAME" ] && [ -n "$WEBDAV_PASSWORD" ]; then
        /app/sync-script.sh backup || log "备份过程中遇到错误,可能是权限问题"
        log "备份尝试完成,容器即将停止"
    else
        log "未配置WebDAV,跳过备份"
    fi
    exit 0
}

trap trap_handler SIGTERM SIGINT

log "启动tgDrive应用..."

cd /app
exec java -jar app.jar "$@"