Spaces:
Running
Running
Update Dockerfile
Browse files- 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
|