Signed-off-by: Stephen J Day <stephen.day@docker.com>
| ... | ... |
@@ -236,7 +236,10 @@ func (s *TagStore) pushImage(r *registry.Session, out io.Writer, imgID, ep strin |
| 236 | 236 |
// Send the layer |
| 237 | 237 |
log.Debugf("rendered layer for %s of [%d] size", imgData.ID, layerData.Size)
|
| 238 | 238 |
|
| 239 |
- checksum, checksumPayload, err := r.PushImageLayerRegistry(imgData.ID, utils.ProgressReader(layerData, int(layerData.Size), out, sf, false, utils.TruncateID(imgData.ID), "Pushing"), ep, token, jsonRaw) |
|
| 239 |
+ prgRd := utils.ProgressReader(layerData, int(layerData.Size), out, sf, false, utils.TruncateID(imgData.ID), "Pushing") |
|
| 240 |
+ defer prgRd.Close() |
|
| 241 |
+ |
|
| 242 |
+ checksum, checksumPayload, err := r.PushImageLayerRegistry(imgData.ID, prgRd, ep, token, jsonRaw) |
|
| 240 | 243 |
if err != nil {
|
| 241 | 244 |
return "", err |
| 242 | 245 |
} |
| ... | ... |
@@ -338,8 +341,12 @@ func (s *TagStore) pushV2Repository(r *registry.Session, eng *engine.Engine, out |
| 338 | 338 |
out.Write(sf.FormatProgress(utils.TruncateID(img.ID), "Image push failed", nil)) |
| 339 | 339 |
return err |
| 340 | 340 |
} |
| 341 |
+ |
|
| 341 | 342 |
if !exists {
|
| 342 |
- err = r.PutV2ImageBlob(endpoint, repoInfo.RemoteName, sumParts[0], manifestSum, utils.ProgressReader(arch, int(img.Size), out, sf, false, utils.TruncateID(img.ID), "Pushing"), auth) |
|
| 343 |
+ prgRd := utils.ProgressReader(arch, int(img.Size), out, sf, false, utils.TruncateID(img.ID), "Pushing") |
|
| 344 |
+ defer prgRd.Close() |
|
| 345 |
+ |
|
| 346 |
+ err = r.PutV2ImageBlob(endpoint, repoInfo.RemoteName, sumParts[0], manifestSum, prgRd, auth) |
|
| 343 | 347 |
if err != nil {
|
| 344 | 348 |
out.Write(sf.FormatProgress(utils.TruncateID(img.ID), "Image push failed", nil)) |
| 345 | 349 |
return err |