javaeeduke commited on
Commit
9a9d9c6
·
verified ·
1 Parent(s): ad533eb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +13 -1
Dockerfile CHANGED
@@ -20,4 +20,16 @@ EXPOSE 7860
20
  # 2. 【核心重置魔法】在启动前,强制删掉任何可能残留的旧数据库和旧配置文件
21
  # 这样每次镜像重新构建启动时,都会被视为“第一次全新开机”,从而强行应用上面的新密码
22
  CMD rm -rf /root/.omniroute/storage.sqlite /root/.omniroute/settings.json data/settings.json 2>/dev/null || true; \
23
- omniroute
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  # 2. 【核心重置魔法】在启动前,强制删掉任何可能残留的旧数据库和旧配置文件
21
  # 这样每次镜像重新构建启动时,都会被视为“第一次全新开机”,从而强行应用上面的新密码
22
  CMD rm -rf /root/.omniroute/storage.sqlite /root/.omniroute/settings.json data/settings.json 2>/dev/null || true; \
23
+ omniroute
24
+ # ... 前面的保持不变 ...
25
+
26
+ # 启动命令改造:不影响前端,只做无感知的底层数据恢复
27
+ CMD \
28
+ # 1. 启动前:如果持久化目录有以前的数据库备份,自动覆盖恢复到 OmniRoute 的运行目录
29
+ if [ -f /data/omni_production.db ]; then cp /data/omni_production.db ./prisma/dev.db; fi; \
30
+ \
31
+ # 2. 异步监听:每隔 5 分钟,悄悄把当前最新的数据库文件备份到持久化目录,防止断电
32
+ (while true; do sleep 300; if [ -f ./prisma/dev.db ]; then cp ./prisma/dev.db /data/omni_production.db; fi; done) & \
33
+ \
34
+ # 3. 正常启动原项目(完全不影响原本的 Web 端口和界面)
35
+ PORT=7860 node server.js