@@ -5,14 +5,19 @@ import (
5
5
"io"
6
6
"net"
7
7
"net/http"
8
+ "strings"
8
9
9
10
v1 "github.com/google/go-containerregistry/pkg/v1"
10
11
"github.com/google/go-containerregistry/pkg/v1/tarball"
11
12
"github.com/julienschmidt/httprouter"
12
13
"github.com/sirupsen/logrus"
13
14
)
14
15
15
- type LocalRegistry map [string ]v1.Image
16
+ type ImageArg struct {
17
+ Image v1.Image
18
+ ArgName string
19
+ }
20
+ type LocalRegistry map [string ]ImageArg
16
21
17
22
func LoadRegistry (imagePaths map [string ]string ) (LocalRegistry , error ) {
18
23
images := LocalRegistry {}
@@ -22,7 +27,7 @@ func LoadRegistry(imagePaths map[string]string) (LocalRegistry, error) {
22
27
return nil , fmt .Errorf ("image from path: %w" , err )
23
28
}
24
29
25
- images [name ] = image
30
+ images [strings . ToLower ( name ) ] = ImageArg { Image : image , ArgName : name }
26
31
}
27
32
28
33
return images , nil
@@ -57,8 +62,8 @@ func ServeRegistry(reg LocalRegistry) (string, error) {
57
62
58
63
func (registry LocalRegistry ) BuildArgs (port string ) []string {
59
64
var buildArgs []string
60
- for name := range registry {
61
- buildArgs = append (buildArgs , fmt .Sprintf ("%s=localhost:%s/%s" , name , port , name ))
65
+ for name , image := range registry {
66
+ buildArgs = append (buildArgs , fmt .Sprintf ("%s=localhost:%s/%s" , image . ArgName , port , name ))
62
67
}
63
68
64
69
return buildArgs
@@ -72,11 +77,12 @@ func (registry LocalRegistry) GetManifest(w http.ResponseWriter, r *http.Request
72
77
"accept" : r .Header ["Accept" ],
73
78
}).Debugf ("get manifest for %s at %s" , name , ref )
74
79
75
- image , found := registry [name ]
80
+ img , found := registry [name ]
76
81
if ! found {
77
82
w .WriteHeader (http .StatusNotFound )
78
83
return
79
84
}
85
+ image := img .Image
80
86
81
87
mt , err := image .MediaType ()
82
88
if err != nil {
@@ -122,11 +128,12 @@ func (registry LocalRegistry) GetBlob(w http.ResponseWriter, r *http.Request, p
122
128
"accept" : r .Header ["Accept" ],
123
129
}).Debugf ("get blob %s" , dig )
124
130
125
- image , found := registry [name ]
131
+ img , found := registry [name ]
126
132
if ! found {
127
133
w .WriteHeader (http .StatusNotFound )
128
134
return
129
135
}
136
+ image := img .Image
130
137
131
138
hash , err := v1 .NewHash (dig )
132
139
if err != nil {
0 commit comments