From e737db0c767bce89ef2dac89dcd988391912c05d Mon Sep 17 00:00:00 2001 From: shy3130 Date: Fri, 16 Oct 2026 16:56:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(docker):=20=E6=94=BE=E8=A1=8C=20scripts/gen?= =?UTF-8?q?erate=5Fmanifest.py=20=E8=BF=9B=E6=9E=84=E5=BB=BA=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat(guard) 提交在 Dockerfile 新增 COPY scripts/generate_manifest.py, 但 .dockerignore 的 scripts 整目录排除规则把该文件挡在构建上下文之外, 导致 docker.yml 双平台构建失败 (CopyIgnoredFile → not found)。 改为 scripts/* + 取反例外, 并修正头注释中"不支持取反语法"的过时说明。 已用仓库真实上下文 + scratch Dockerfile 本地验证三个 COPY 均可用。 --- .dockerignore | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index d71403f..9ee3727 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ # 构建 Docker 镜像时排除的文件 / 目录。 # 与 .gitignore 思路一致: 只把 Dockerfile 真正需要的送进构建上下文, # 减小上下文体积、加速上传、避免缓存误伤。 -# 注意: .dockerignore 不识别 .gitignore 的取反(!)语法, 这里按白名单思路直接列举排除项。 +# 注意: 取反(!)按最后匹配生效, 仅在 Dockerfile 确需某个文件时使用; 其余直接列举排除项。 # ===== 版本控制 / CI ===== .git @@ -42,10 +42,11 @@ packaging backend/dist backend/build -# ===== 开发脚本(本地启服务用, 镜像不用) ===== +# ===== 开发脚本(本地启服务用, 镜像不用; generate_manifest.py 例外 — Dockerfile 构建期生成升级保护清单) ===== dev.sh dev.ps1 -scripts +scripts/* +!scripts/generate_manifest.py # ===== 密钥(防止误打进公开镜像) ===== .env