2.5 KiB
2.5 KiB
title, task_id, status, created, updated, owner, task_type, task_tier, policy_revision, branch, worktree, base_dev_sha, write_scope, allowed_environments, capabilities, mutex, review_state, integration_state, deployment, cleanup, remote_sync
| title | task_id | status | created | updated | owner | task_type | task_tier | policy_revision | branch | worktree | base_dev_sha | write_scope | allowed_environments | capabilities | mutex | review_state | integration_state | deployment | cleanup | remote_sync | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 修复 docker 构建上下文缺少 web/dist/.gitkeep 导致候选镜像构建失败 | docker-context-gitkeep-2026-09-27 | done | 2026-09-27 | 2026-09-27 | pi | fix | small | AGENTS+worktree-ops @ 94c215d3 |
fix/docker-context-gitkeep-2026-09-27 | .worktrees/docker-context-gitkeep-2026-09-27 | 94c215d36e |
|
|
|
env:dev | accepted | merged_local_dev | not_required | pending | not_requested |
修复 docker 构建上下文缺少 web/dist/.gitkeep
问题与根因(已证实)
- 症状:
candidate-images-build.sh --commit 94c215d3在 go-builder 阶段失败:web/embed.go:14:12: pattern all:dist: no matching files found。 - 根因:
.dockerignore的web/dist行把整个目录排除出构建上下文;web/embed.go(//go:embed all:dist,6cbe7e6e 2026-09-24 16:20 落地)依赖 git 内的web/dist/.gitkeep使模式可满足。两者组合后上下文内无任何web/dist条目 → embed 失败。 - 时间线:最后一次成功候选镜像构建 =
3de5bc5c(2026-09-24 03:24,早于 embed.go)。即自单二进制 P1 合入起 docker 镜像构建已坏,因 dev 转非容器、test/main 未重建而未暴露。本次 dev→test 晋升(--require-digests 门禁)首次触发。 - 影响:所有需要 image_digests 的晋升/发布门禁(dev→test、test→main)被阻断。
修复
.dockerignore 在 web/dist 排除后追加 !web/dist/.gitkeep 负向规则:上下文仅含 .gitkeep,embed 模式可满足;容器运行时行为不变(镜像内 dist 仍来自 web-builder 阶段 COPY --from=web-builder /web/dist,embed 内无 index.html → LookupDist false → 磁盘回退,与 P1 之前语义一致)。
验证
真实执行 candidate-images-build.sh --commit <本修复提交>:app/events/pi-agent 三镜像构建成功并产出 digests(即晋升同款路径)。
关联
- 触发任务:test-single-binary-2026-09-27(晋升 rc-v1.1.0-beta.4 需 digests 收据)。
- 同期发现的独立缺陷(另立跟进,不在本修复内):sysadmin 初始 apply 空 key 清空 runner models.json(internal/app/app.go + internal/sysadmin/apply.go);launch.sh sidecar 子 shell 相对 DATA_DIR 扩展路径解析。