2.0 KiB
2.0 KiB
title, task_id, status, created, updated, owner, task_type, policy_revision, branch, worktree, base_dev_sha, write_scope, mutex, review_state, integration_state, deployment, cleanup, remote_sync
| title | task_id | status | created | updated | owner | task_type | policy_revision | branch | worktree | base_dev_sha | write_scope | mutex | review_state | integration_state | deployment | cleanup | remote_sync | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T20 S4 镜像批(代码层):I1/I4 | t20-s4-image-batch-2026-09-25 | in_progress | 2026-09-25 | 2026-09-25 | Cursor | hardening | AGENTS.md @ 42436f75 |
feature/t20-s4-image-batch-2026-09-25 | .worktrees/t20-s4-image-batch-2026-09-25 | 42436f754d |
|
infra-config | done | pending | blocked_awaiting_authorization | pending | not_requested |
T20 S4 镜像批(代码层):I1/I4
用户目标与授权
- 来源:
planned-tasks-closeout-plan-2026-09-25P5 批次;设计 T20 I1/I4。 - 仅代码/compose 层合入;共享环境部署需另授权(I1 卷权限冒烟须在部署窗口做)。
变更清单
| ID | 变更 | 文件 |
|---|---|---|
| I1 | Dockerfile 建 appuser(uid/gid 10001)、chown /app、USER appuser;compose app/events 服务 mem_limit/mem_reservation/cpus(dev 1.5g/2g、test 2g/1g、main 3g/1g app) |
deploy/app/Dockerfile、docker-compose.*.yml |
| I4 | dev(context_init)与 main(goose baseline)统一改挂 extensions_init.sql → 01-extensions.sql;表结构一律走 app goose 迁移 |
docker-compose.dev.yml、docker-compose.main.yml |
验证
docker build --check:无警告。- 三环境
docker compose config --quiet:PASS;渲染含mem_limit/cpus/01-extensions.sql。 USER appuser在 healthcheck/entrypoint 前生效。
部署边界(redline)
- 新卷首次启动顺序:Postgres 扩展 init → app goose 迁移。已建数据卷不受挂载变更影响(init 脚本仅在空卷执行)。
- 宿主卷权限:
data/*须对 uid 10001 可写;部署窗口先冒烟/health+ 一次写 data。 - I6(systemd 备份)不在本批;cap_drop ALL 列为后续可选。