返回 Bug 清单
BUG-0343project-47高已修复deploy

Dockerfile COPY 白名单漏资产 —— 新增静态文件没进镜像,线上 404/502

发现:2026-10-01验证:2026-10-09置信度:90%

症状

本地构建产物齐全,线上却缺文件——构建方式是『本地 npm build → 服务器纯 COPY』,白名单没有随源文件清单同步更新。

根因

逐文件 COPY 是为了把服务器构建瘦身为纯拷贝,但白名单是手工维护的第二份清单,与源码资产无一致性校验——每次新增静态资产都是一次人工同步赌博。

修复方案

1) 改目录级 COPY(整 dist 目录拷贝),消灭第二份清单; 2) 若确需白名单,CI 里 diff『构建产物文件集合 vs 镜像内文件集合』,有差异即失败; 3) 修复提交顺带把服务器构建路径整体切换为本地 build 直出,跳过服务器 npm install(弱网服务器构建又慢又易失败)。

检测命令

tar -tf <前端镜像或产物包> | grep -E 'splash|manifest|\.well-known'  # 与 dist 目录清单 diff

错误签名

前端 Dockerfile 逐文件 COPY 白名单;新增 splash.css / manifest.json / download / .well-known 后镜像内缺失,对应路径 404

技术信息

来源项目

project-47

涉及文件

Dockerfile

标签

dockerfile, copy-whitelist, static-assets, frontend-deploy