68 lines
1.8 KiB
Bash
68 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
# Fast hot-patch without rebuild: copy host code into container then restart.
|
|
# Usage: ./quick_hotpatch.sh
|
|
|
|
set -e
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
echo "========================================"
|
|
echo " XHS 采集器 - 快速热更新"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# 检查容器是否运行
|
|
if ! docker ps | grep -q "xhs-web"; then
|
|
echo "❌ 容器 xhs-web 未运行,请先启动服务:"
|
|
echo " ./quick_start.sh"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[热更新] 同步代码到容器..."
|
|
# 同步核心 Python 文件
|
|
echo " - xhs_crawler_core.py"
|
|
docker cp xhs_crawler_core.py xhs-web:/app/xhs_crawler_core.py
|
|
|
|
echo " - app/server.py"
|
|
docker cp ./app/server.py xhs-web:/app/app/server.py
|
|
|
|
echo " - app/static/index.html"
|
|
docker cp ./app/static/index.html xhs-web:/app/app/static/index.html
|
|
|
|
echo ""
|
|
echo "[热更新] 重启容器..."
|
|
docker restart xhs-web >/dev/null
|
|
|
|
echo "⏳ 等待服务启动..."
|
|
sleep 3
|
|
|
|
echo ""
|
|
echo "[热更新] 检查服务状态..."
|
|
if docker ps | grep -q "xhs-web"; then
|
|
echo "✅ 容器运行正常"
|
|
else
|
|
echo "❌ 容器启动失败"
|
|
docker logs xhs-web --tail=50
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "[热更新] 健康检查..."
|
|
# 检查 Web 界面
|
|
WEB_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:28000/ || echo "000")
|
|
if [ "$WEB_STATUS" = "200" ]; then
|
|
echo "✅ Web 界面正常 (HTTP $WEB_STATUS)"
|
|
else
|
|
echo "⚠️ Web 界面响应异常 (HTTP $WEB_STATUS)"
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo " 热更新完成!"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "提示:修改 xhs_crawler_core.py 或 app/server.py 后,"
|
|
echo " 运行此脚本即可快速应用更新,无需重新构建镜像"
|
|
echo ""
|