From c08dfaa23d90d5df044f44f1ba89fc1e0b727757 Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Fri, 19 Jan 2024 14:58:36 -0800 Subject: [PATCH] fix: remove overwritten model layers if create overrides a manifest, first add the older manifest's layers to the delete map so they can be cleaned up --- server/images.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/images.go b/server/images.go index 1d0c73cc..a20f6bd7 100644 --- a/server/images.go +++ b/server/images.go @@ -412,6 +412,13 @@ func realpath(mfDir, from string) string { } func CreateModel(ctx context.Context, name, modelFileDir string, commands []parser.Command, fn func(resp api.ProgressResponse)) error { + deleteMap := make(map[string]struct{}) + if manifest, _, err := GetManifest(ParseModelPath(name)); err == nil { + for _, layer := range append(manifest.Layers, manifest.Config) { + deleteMap[layer.Digest] = struct{}{} + } + } + config := ConfigV2{ OS: "linux", Architecture: "amd64", @@ -420,8 +427,6 @@ func CreateModel(ctx context.Context, name, modelFileDir string, commands []pars }, } - deleteMap := make(map[string]struct{}) - var layers Layers params := make(map[string][]string)