flzta commited on
Commit
1b575d3
·
verified ·
1 Parent(s): c896194

Create entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +66 -0
entrypoint.sh ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ mkdir -p /app/logs 2>/dev/null || true
5
+
6
+ log() {
7
+ 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"
8
+ }
9
+
10
+ log "容器启动中..."
11
+
12
+ SYNC_INTERVAL="${SYNC_INTERVAL:-60}"
13
+ log "设置同步间隔: ${SYNC_INTERVAL}分钟"
14
+
15
+ DB_PATH="${DB_PATH:-/app/db}"
16
+ BACKUP_PATH="${BACKUP_PATH:-/app/backup}"
17
+ REMOTE_BACKUP_DIR="${REMOTE_BACKUP_DIR:-tgdrive_backup}"
18
+ BACKUP_FILENAME="${BACKUP_FILENAME:-tgdrive_db_backup.tar.gz}"
19
+
20
+ mkdir -p "$DB_PATH" 2>/dev/null || true
21
+ mkdir -p "$BACKUP_PATH" 2>/dev/null || true
22
+ chmod -R 777 "$DB_PATH" 2>/dev/null || true
23
+ chmod -R 777 "$BACKUP_PATH" 2>/dev/null || true
24
+
25
+ log "数据库路径: ${DB_PATH}"
26
+ log "备份路径: ${BACKUP_PATH}"
27
+ log "远程备份目录: ${REMOTE_BACKUP_DIR}"
28
+ log "备份文件名: ${BACKUP_FILENAME}"
29
+
30
+ if [ -n "$WEBDAV_URL" ] && [ -n "$WEBDAV_USERNAME" ] && [ -n "$WEBDAV_PASSWORD" ]; then
31
+ log "检测到WebDAV配置,尝试初始同步..."
32
+
33
+ /app/sync-script.sh restore || log "首次恢复尝试失败,可能是首次运行或WebDAV上没有备份或权限问题"
34
+
35
+ log "设置定时同步任务..."
36
+ (
37
+ while true; do
38
+ sleep $((SYNC_INTERVAL * 60))
39
+ /app/sync-script.sh sync >> /app/logs/sync_cron.log 2>&1 || log "同步任务执行失败" >> /app/logs/sync_cron.log 2>&1
40
+ done
41
+ ) &
42
+
43
+ log "后台同步服务已启动,每${SYNC_INTERVAL}分钟执行一次"
44
+ else
45
+ log "未检测到WebDAV配置,跳过同步设置"
46
+ fi
47
+
48
+ log "tgDrive 同步版本启动成功"
49
+
50
+ trap_handler() {
51
+ log "接收到停止信号,执行备份..."
52
+ if [ -n "$WEBDAV_URL" ] && [ -n "$WEBDAV_USERNAME" ] && [ -n "$WEBDAV_PASSWORD" ]; then
53
+ /app/sync-script.sh backup || log "备份过程中遇到错误,可能是权限问题"
54
+ log "备份尝试完成,容器即将停止"
55
+ else
56
+ log "未配置WebDAV,跳过备份"
57
+ fi
58
+ exit 0
59
+ }
60
+
61
+ trap trap_handler SIGTERM SIGINT
62
+
63
+ log "启动tgDrive应用..."
64
+
65
+ cd /app
66
+ exec java -jar app.jar "$@"