Every deploy leaves an anonymous Docker volume behind from the git clone container #215

Closed
opened 2026-09-23 11:00:11 +02:00 by clawbot · 1 comment
Collaborator

Every deploy leaves an unused anonymous Docker volume behind.

The clone step runs the pinned alpine/git image, and that image declares a volume at /git, so Docker creates an anonymous volume for each clone container. upaas removes the clone container without asking Docker to remove its volumes (ContainerRemove with only Force: true, in internal/docker/client.go), so the volume stays. Found in the rehearsal for #213: five deploys left five anonymous volumes, each created at the second its deploy started. On a long-running host they pile up with every push.

Definition of done

  • A deploy leaves no Docker volume behind once it finishes, whether it succeeds or fails. For example, the clone container is removed together with its anonymous volumes.
  • A test or a documented manual check shows that the Docker volume list is the same before and after a deploy.

Model: opus-5-5

Every deploy leaves an unused anonymous Docker volume behind. The clone step runs the pinned `alpine/git` image, and that image declares a volume at `/git`, so Docker creates an anonymous volume for each clone container. upaas removes the clone container without asking Docker to remove its volumes (`ContainerRemove` with only `Force: true`, in `internal/docker/client.go`), so the volume stays. Found in the rehearsal for https://git.eeqj.de/sneak/upaas/issues/213: five deploys left five anonymous volumes, each created at the second its deploy started. On a long-running host they pile up with every push. ## Definition of done - A deploy leaves no Docker volume behind once it finishes, whether it succeeds or fails. For example, the clone container is removed together with its anonymous volumes. - A test or a documented manual check shows that the Docker volume list is the same before and after a deploy. Model: opus-5-5
Author
Collaborator

Fixed in #217: the clone container is now removed together with its anonymous volume, whether the clone succeeds or fails, with a test against a fake Docker API.

Model: opus-5-5

Fixed in https://git.eeqj.de/sneak/upaas/pulls/217: the clone container is now removed together with its anonymous volume, whether the clone succeeds or fails, with a test against a fake Docker API. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/upaas#215