@@ -20,6 +20,7 @@ import (
2020 "fmt"
2121 "io"
2222 "os"
23+ "strings"
2324 "time"
2425
2526 "github.com/containerd/containerd"
@@ -81,15 +82,19 @@ If foobar.tar contains an OCI ref named "latest" and anonymous ref "sha256:deadb
8182 prefix := context .String ("base-name" )
8283 if prefix == "" {
8384 prefix = fmt .Sprintf ("import-%s" , time .Now ().Format ("2006-01-02" ))
85+ opts = append (opts , containerd .WithImageRefTranslator (docker .RefTranslator (prefix , false )))
86+ } else {
87+ // When provided, filter out references which do not match
88+ opts = append (opts , containerd .WithImageRefTranslator (docker .RefTranslator (prefix , true )))
8489 }
8590
8691 switch format := context .String ("format" ); format {
8792 case "" , "docker" , "docker.v1.1" , "docker.v1.2" :
88- opts = append (opts , containerd .WithImporter (& docker.V1Importer {}))
89- opts = append (opts , containerd .WithImageRefTranslator (docker .RefTranslator (prefix , context .String ("base-name" ) != "" )))
93+ opts = append (opts , containerd .WithImporter (& docker.V1Importer {
94+ SkipOCI : strings .HasPrefix (format , "docker" ),
95+ }))
9096 case "oci" , "oci.v1" :
9197 opts = append (opts , containerd .WithImporter (& oci.V1Importer {}))
92- opts = append (opts , containerd .WithImageRefTranslator (oci .RefTranslator (prefix )))
9398 default :
9499 return fmt .Errorf ("unknown format %s" , format )
95100 }
0 commit comments