Skip to content

Commit f80db9e

Browse files
committed
fix hot-reloading
1 parent d4338e1 commit f80db9e

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

entrypoint.sh

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ PID_FILE="/tmp/autobangumi.pid"
1111
cleanup() {
1212
echo "收到停止信号,正在清理..."
1313
SHOULD_STOP=true
14+
15+
# 清理更新相关标志文件
16+
rm -f "/tmp/auto_bangumi_update_ready.flag"
17+
rm -f "/tmp/auto_bangumi_update.lock"
18+
1419
if [ -f "$PID_FILE" ]; then
1520
pid=$(cat "$PID_FILE")
1621
if [ -n "$pid" ]; then
@@ -58,11 +63,11 @@ while [ "$SHOULD_STOP" != "true" ]; do
5863
elif [ $exit_code -eq 0 ]; then
5964
echo "应用正常退出,2秒后重启(热更新)..."
6065
sleep 2
61-
66+
6267
# 在Python进程完全退出后检查更新标志
6368
if [ -f "/tmp/auto_bangumi_update_ready.flag" ]; then
6469
echo "检测到更新标志,执行文件替换..."
65-
70+
6671
# 读取更新信息
6772
extract_path=$(python3 -c "
6873
import json
@@ -73,40 +78,43 @@ try:
7378
except:
7479
print('')
7580
" 2>/dev/null || echo "")
76-
81+
7782
if [ -n "$extract_path" ] && [ -d "$extract_path" ]; then
7883
echo "$extract_path 更新应用文件..."
79-
84+
8085
# 更新 src 目录
8186
if [ -d "$extract_path/src" ]; then
8287
echo "更新 src 目录..."
8388
rm -rf /app/src.old 2>/dev/null || true
8489
[ -d "/app/src" ] && mv /app/src /app/src.old
8590
cp -r "$extract_path/src" /app/src && echo "src 目录更新成功"
8691
fi
87-
88-
# 更新 dist 目录
92+
93+
# 更新 dist 目录
8994
if [ -d "$extract_path/dist" ]; then
9095
echo "更新 dist 目录..."
9196
rm -rf /app/dist.old 2>/dev/null || true
92-
[ -d "/app/dist" ] && mv /app/dist /app/dist.old
97+
[ -d "/app/dist" ] && mv /app/dist /app/dist.old
9398
cp -r "$extract_path/dist" /app/dist && echo "dist 目录更新成功"
9499
fi
95-
100+
96101
# 修复权限并清理
97102
chown -R ab:ab /app/src /app/dist 2>/dev/null || true
98103
rm -rf /app/src.old /app/dist.old "$extract_path" 2>/dev/null || true
99104
echo "文件替换完成!"
100105
else
101-
echo "无效的更新路径: $extract_path"
106+
echo "无效的更新路径: $extract_path"
102107
fi
103-
108+
104109
# 删除更新标志文件
105110
rm -f "/tmp/auto_bangumi_update_ready.flag"
106111
echo "更新处理完成,启动新版本..."
107112
fi
108113
else
109114
echo "应用异常退出 (退出码: $exit_code),停止容器"
115+
# 手动清理更新标志文件
116+
rm -f "/tmp/auto_bangumi_update_ready.flag"
117+
rm -f "/tmp/auto_bangumi_update.lock"
110118
exit $exit_code
111119
fi
112120
done

0 commit comments

Comments
 (0)