34fc2d15b7
Co-authored-by: multica-agent <github@multica.ai>
4.3 KiB
4.3 KiB
Work Log - 修复 Buildx 安装阶段访问 Docker Hub 超时(2026-06-09)
-
背景:
- GitHub Actions run
27150975287在build-and-pushjob 的安装 Buildx步骤失败,后续镜像构建与部署全部被跳过。 - check-run annotation 给出的精确错误为:
Head "https://registry-1.docker.io/v2/moby/buildkit/manifests/buildx-stable-1" ... Client.Timeout exceeded while awaiting headers
- 根因不是仓库镜像构建脚本本身,而是
docker/setup-buildx-action默认docker-container驱动在启动 BuildKit builder 时,需要先从 Docker Hub 拉moby/buildkit:buildx-stable-1,受外网访问抖动影响直接超时。
- GitHub Actions run
-
本次处理:
.github/workflows/main.ymlactions/checkout升级到v6。docker/setup-buildx-action升级到v4,并显式指定:driver-opts: image=docker.m.daocloud.io/moby/buildkit:buildx-stable-1- 避免 Buildx 初始化再访问 Docker Hub 拉默认 BuildKit 镜像。
docker/login-action升级到v4。docker/build-push-action升级到v7。
- 兼带收益:
- 消除了该次 run 中出现的
Node.js 20 actions are deprecated预警里的旧版checkout/setup-buildx。
- 消除了该次 run 中出现的
-
验证:
- 基线:
- GitHub Actions run
27150975287失败,且失败点固定在安装 Buildx。 - check-run annotation 可复核到 Docker Hub
moby/buildkit拉取超时。
- GitHub Actions run
- 修改后:
python3解析.github/workflows/main.yml通过。actionlint校验变更前/变更后 workflow 均可解析,变更未引入 YAML / Actions 语法问题。git diff --check -- .github/workflows/main.yml通过。
- 当前环境限制:
- 无法直接在本地实际执行 GitHub hosted runner 上的
setup-buildx拉起流程,真实恢复效果需要依赖下一次 Actions 运行确认。
- 无法直接在本地实际执行 GitHub hosted runner 上的
- 基线:
-
风险与关注点:
- 本次修复只绕开 BuildKit builder 镜像对 Docker Hub 的依赖;后续若
Dockerfile里的基础镜像或docker build --pull仍指向不稳定上游,构建阶段仍可能出现其他网络相关失败。
- 本次修复只绕开 BuildKit builder 镜像对 Docker Hub 的依赖;后续若
Work Log - 修复线路管理走向图在 /fl 子路径下无法渲染(2026-06-09)
-
背景:
- Issue
FL-60反馈“线路管理中走向图渲染不出来”。 - 仓库部署默认启用
NEXT_PUBLIC_APP_BASE_PATH=/fl,但多个 Cesium 组件初始化时仍把window.CESIUM_BASE_URL硬编码为"/cesium"。 - 这会导致页面在
/fl/admin/power-lines等子路径下请求错误的静态资源地址,最终触发 Cesium Viewer 初始化失败。
- Issue
-
本次处理:
web/src/components/power-line-cesium-map.tsx- 将走向图 Cesium 静态资源根路径改为
withBasePath("/cesium"),修复线路管理走向图在/fl部署下的资源寻址。
- 将走向图 Cesium 静态资源根路径改为
web/src/components/elevation-preview-cesium-map.tsx- 同步改为
withBasePath("/cesium"),避免高程预览图在相同部署口径下继续空白。
- 同步改为
web/src/components/lightning-distribution-map.tsx- 同步改为
withBasePath("/cesium"),保持雷电分布图与项目子路径部署口径一致。 - 顺手补齐
Viewer/CesiumNamespace/Cartesian3[]显式类型,消除本地 lint 暴露的no-explicit-any问题。
- 同步改为
-
验证:
- 基线:
- 代码检查确认
power-line-cesium-map.tsx、elevation-preview-cesium-map.tsx、lightning-distribution-map.tsx都存在window.CESIUM_BASE_URL = "/cesium"硬编码。 - 部署配置检查确认
deploy/pro-deploy/.env与 compose / Dockerfile 默认均为NEXT_PUBLIC_APP_BASE_PATH=/fl。 - 初次本地 lint 尝试因未安装前端依赖失败;补充执行
NPM_CONFIG_CACHE=/tmp/npm-cache npm ci后继续验证。
- 代码检查确认
- 修改后:
NPM_CONFIG_CACHE=/tmp/npm-cache npm --workspace web exec eslint src/components/power-line-cesium-map.tsx src/components/elevation-preview-cesium-map.tsx src/components/lightning-distribution-map.tsx src/app/admin/power-lines/page.tsx --max-warnings=0-> 通过。NEXT_PUBLIC_APP_BASE_PATH=/fl NPM_CONFIG_CACHE=/tmp/npm-cache npm run build:web-> 通过。
- 基线:
-
风险与关注点:
- 本次修复聚焦前端静态资源路径,不涉及后端接口、数据库或权限逻辑。
- 若后续新增 Cesium 页面,必须继续复用
withBasePath("/cesium"),不能再硬编码根路径。