Close a release with smoke and rollback evidence
Building an image does not prove that users can use a healthy path. Bind the tested commit to the running image and run a real DB-reading smoke after readiness.
Table of contents
Building an image does not prove that users can use a healthy path. Bind the tested commit to the running image and run a real DB-reading smoke after readiness.
Minimal sequence
- Require a clean worktree and explicit services.
- Build or reuse the Git-SHA image.
- Replace only target services with
--no-deps --force-recreate. - Check container readiness and each service's real read smoke.
- On failure, restore the previous image as a rollback tag and re-check readiness.
SSR and the static mirror
Docker SSR and a static mirror are separate artifacts. A DB-only change can leave the mirror with an old export, so verify console seed, SSR public reads, export contents, static deployment, and both locale routes separately. Preserve success and rollback logs with the release tag.
Where the evidence closes
| Stage | Weak evidence | Evidence of completion |
|---|---|---|
| Build | An image was created | Image tag matches the verified Git SHA |
| Start | Process is running | Readiness, including required dependencies, passes |
| Feature | Static /health returns 200 |
A DB-backed read and a core user route respond |
| Failure | A previous image tag exists | The previous image passes readiness and smoke again |
| Mirror | Static deployment succeeds | Source/export field drift is zero and public routes work |
commit ──build──▶ immutable image ──replace──▶ readiness
▲ │
└──────── rollback + smoke ◀── failure ┘
Deleting a failed new container does not complete a rollback. The previous instance must prove that it serves requests again, and smoke must use a representative read that does not mutate data.
Related course: Bind a verified commit to a release and image