Skip to content

Commit 2503a3d

Browse files
authored
Bugfix - Docker push fails to update layers properties (#21)
1 parent 1b3f1e5 commit 2503a3d

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

artifactory/utils/docker/buildinfo.go

+21-7
Original file line numberDiff line numberDiff line change
@@ -231,20 +231,34 @@ func (builder *buildInfoBuilder) setBuildProperties() (int, error) {
231231
if err != nil {
232232
return 0, err
233233
}
234-
writer, err := content.NewContentWriter("results", true, false)
234+
pathToFile, err := writeLayersToFile(builder.layers)
235235
if err != nil {
236-
log.Error("Fail to create new content writer for docker layer")
237236
return 0, err
238237
}
239-
defer writer.Close()
240-
for _, item := range builder.layers {
241-
writer.Write(item)
242-
}
243-
reader := content.NewContentReader(writer.GetFilePath(), content.DefaultKey)
238+
reader := content.NewContentReader(pathToFile, content.DefaultKey)
244239
defer reader.Close()
245240
return builder.serviceManager.SetProps(services.PropsParams{Reader: reader, Props: props})
246241
}
247242

243+
func writeLayersToFile(layers []utils.ResultItem) (filePath string, err error) {
244+
writer, err := content.NewContentWriter("results", true, false)
245+
if err != nil {
246+
log.Error("Fail to create new content writer for docker layer")
247+
return
248+
}
249+
defer func() {
250+
deferErr := writer.Close()
251+
if err == nil {
252+
err = deferErr
253+
}
254+
}()
255+
for _, layer := range layers {
256+
writer.Write(layer)
257+
}
258+
filePath = writer.GetFilePath()
259+
return
260+
}
261+
248262
// Create docker build info
249263
func (builder *buildInfoBuilder) createBuildInfo(module string) (*buildinfo.BuildInfo, error) {
250264
imageProperties := map[string]string{}

0 commit comments

Comments
 (0)