D48: a restore downloads first — every restore path resolves and pulls every image of the definition that will run before the stop, under the image-work lock held until the restore returns; a failed pull refuses with the app untouched (a deleted version and a busy registry read differently), one operator line. Red-proved. Commit only.
gates / gates (push) Successful in 1m26s

This commit is contained in:
2026-10-25 09:38:28 +01:00
parent b680db85cb
commit 2d71270858
16 changed files with 404 additions and 3 deletions
+3
View File
@@ -19,6 +19,9 @@ func TestMain(m *testing.M) {
healthSettle = 0
healthInterval = 2 * time.Millisecond
healthTimeout = 50 * time.Millisecond
// D48 / R-650: no test in this package reaches Docker for the restore's pre-pull — every image is present unless a
// test says otherwise (m.imagePresentFn / m.imagePullFn).
imagePresentDefault = func(string) bool { return true }
os.Exit(m.Run())
}