严重度:MEDIUM(构建性能 + 安全)
来源
CR thana 提交。涉及 MEDIUM 9。
问题
项目根 无 `.dockerignore`(已确认 `ls` 报 No such file)。`docker-compose.ci.yml` 三个服务 `build.context: .` → docker build 把整个仓库(`.git`、`wiki/`、`docs/`、`backend-spring/target`、本地 `node_modules`、`.env` 等)发给 daemon 作为 build context:
- 性能:构建 console 镜像时白传 backend-spring 整个目录
- 安全:`.env`(含生成凭据)、`infrastructure/`、`tools/` 等可能被 `COPY` 进镜像层(即使当前 Dockerfile 没显式 COPY,`COPY . .` 模式会带入)
build context 必须保留为 `. `(monorepo:console/management Dockerfile 需 `COPY shared`,shared 在项目根),所以靠 `.dockerignore` 收紧,不改 context。
修复
新增项目根 `.dockerignore`,排除:
- VCS:`.git` / `.github` / `.gitlab`
- IDE/agent:`.claude` / `.cursor` / `.codex` / `.agents` / `.vscode` / `.idea`
- 文档:`wiki` / `docs` / `*.md`
- 构建产物:`/node_modules` / `/dist` / `/target` / `/.vitest` / `/coverage` / `logs` / `/*.log`
- 本地/运行时:`.env` / `.env.*`(保留 `!.env.example`)/ `infrastructure` / `tools` / `scripts` / `tmp`
- 部署编排:`docker-compose*.yml` / `ecosystem.config.cjs`
- 独立镜像:`init-db` / `docker/sandbox`
保留 build 必需:`console/` / `management/` / `shared/` / `backend-spring/`
分支
`fix/docker-build-context`
严重度:MEDIUM(构建性能 + 安全)
来源
CR thana 提交。涉及 MEDIUM 9。
问题
项目根 无 `.dockerignore`(已确认 `ls` 报 No such file)。`docker-compose.ci.yml` 三个服务 `build.context: .` → docker build 把整个仓库(`.git`、`wiki/`、`docs/`、`backend-spring/target`、本地 `node_modules`、`.env` 等)发给 daemon 作为 build context:
build context 必须保留为 `. `(monorepo:console/management Dockerfile 需 `COPY shared`,shared 在项目根),所以靠 `.dockerignore` 收紧,不改 context。
修复
新增项目根 `.dockerignore`,排除:
保留 build 必需:`console/` / `management/` / `shared/` / `backend-spring/`
分支
`fix/docker-build-context`