#!/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 ""