Containers: orchestration, systemd, rolling updates, docs #20

Closed
opened 2026-04-17 12:43:41 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As an operator, I want just recipes, an updated systemd unit, and operational docs for the containerised workers, so that the new model is deployable and reversible without hand-holding.

Split out of the original containerisation story (#17).

Acceptance criteria

just recipes

  • just containers-up — starts every configured agent container
  • just containers-down — stops every agent container (worktrees/sessions persist in volumes)
  • just containers-rebuild — pulls the latest image and recreates each container one at a time
  • just containers-logs [name] — tail container logs
  • just containers-shell <name>docker exec -it <name> bash for debugging

systemd

  • Existing claude-hooks.service gains After=docker.service and Requires=docker.service
  • ExecStartPre / ExecStopPost hooks bring agent containers up/down in sync with the service
  • Service stop gracefully drains in-flight tasks before tearing down containers

Rolling updates

  • Replacing one agent's container image does not affect the other agents or the running claude-hooks process
  • Document the procedure in README.md: pull new image, just containers-rebuild <name>

Docs

  • README.md section on the containerised architecture, the host/container boundary, token rotation, image updates
  • Migration note: existing ~/.cache/claude-hooks state is abandoned, new install starts clean with empty volumes

Out of scope

  • Image build / publish — #18
  • Container runtime / volumes — #19

References

  • Parent tracking issue: #17

Dependencies

  • Blocked by: #19 (runtime)
  • Blocks: none
  • Branch off: main
  • Full graph: #17
## User story As an **operator**, I want `just` recipes, an updated systemd unit, and operational docs for the containerised workers, so that the new model is deployable and reversible without hand-holding. Split out of the original containerisation story (#17). ## Acceptance criteria ### `just` recipes - [ ] `just containers-up` — starts every configured agent container - [ ] `just containers-down` — stops every agent container (worktrees/sessions persist in volumes) - [ ] `just containers-rebuild` — pulls the latest image and recreates each container one at a time - [ ] `just containers-logs [name]` — tail container logs - [ ] `just containers-shell <name>` — `docker exec -it <name> bash` for debugging ### systemd - [ ] Existing `claude-hooks.service` gains `After=docker.service` and `Requires=docker.service` - [ ] `ExecStartPre` / `ExecStopPost` hooks bring agent containers up/down in sync with the service - [ ] Service stop gracefully drains in-flight tasks before tearing down containers ### Rolling updates - [ ] Replacing one agent's container image does not affect the other agents or the running claude-hooks process - [ ] Document the procedure in `README.md`: pull new image, `just containers-rebuild <name>` ### Docs - [ ] `README.md` section on the containerised architecture, the host/container boundary, token rotation, image updates - [ ] Migration note: existing `~/.cache/claude-hooks` state is abandoned, new install starts clean with empty volumes ## Out of scope - Image build / publish — #18 - Container runtime / volumes — #19 ## References - Parent tracking issue: #17 ## Dependencies - **Blocked by:** #19 (runtime) - **Blocks:** none - **Branch off:** `main` - **Full graph:** #17
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#20
No description provided.