fix(deploy): 构建抓取通道可配+构建日志落盘——ESA 522 事故双根治

- build.sh:BLOG_GIT_URL 环境变量(默认公网,同机构建可指内网
  http://127.0.0.1:13020);每次构建 remote set-url 后 fetch——
  2026-10-26 事故:ESA 边缘对 git.wait4x.online 522 时公网 fetch
  set -e 静默死,staging 冻结 150s+ 无痕
- webhook_receiver.py:构建输出落盘 ~/docker_apps/blog/build.log
  (capture_output 丢弃=黑洞,本次事故"构建为何没跑"零证据);
  与运行副本双同步纪律维持
- 宿主 unit 补 BLOG_GIT_URL 内网通道(配置在 unit 不在仓——主机
  特定值不污染仓库默认)

验证: 手动构建实测 stamp=19b2390+robots.txt 352B 上线;18743 测试
      床恢复 200;smoke 对 staging 软门容忍符合 T1 转硬门前设计

Spec: none (发布链通道与可观测性修复,事故驱动)

Co-authored-by: GLM-5.3
This commit is contained in:
wait4xandGLM-5.3 committed 2026-11-01 09:58:47 +08:00
1 parent 19b2390cbf
commit bb29c8abaf
2 files changed
+16 -6

No files matched your search

+9 -5
View File
@@ -85,11 +85,15 @@ class Handler(BaseHTTPRequestHandler):
def _run_build(self) -> None:
with BUILD_LOCK:
subprocess.run(
["bash", str(build_script())],
capture_output=True, timeout=1200,
cwd=str(BUILD_REPO),
)
# 输出落盘:capture_output 丢弃是调试黑洞(2026-10-26 ESA 522
# 事件中构建静默死、staging 冻结无任何可见痕迹)
log = Path.home() / "docker_apps/blog/build.log"
with open(log, "wb") as fh:
subprocess.run(
["bash", str(build_script())],
stdout=fh, stderr=subprocess.STDOUT, timeout=1200,
cwd=str(BUILD_REPO),
)
def log_message(self, fmt: str, *args: object) -> None:
# 静默常规访问日志(健康探针会刷屏);错误仍走默认 stderr