diff --git a/archive/archive.go b/archive/archive.go index eace5a5158..2fac18e99f 100644 --- a/archive/archive.go +++ b/archive/archive.go @@ -617,6 +617,9 @@ func NewTempArchive(src Archive, dir string) (*TempArchive, error) { if _, err := io.Copy(f, src); err != nil { return nil, err } + if err = f.Sync(); err != nil { + return nil, err + } if _, err := f.Seek(0, 0); err != nil { return nil, err } diff --git a/server/server.go b/server/server.go index e6243971a4..840a70357d 100644 --- a/server/server.go +++ b/server/server.go @@ -378,10 +378,15 @@ func (srv *Server) exportImage(img *image.Image, tempdir string) error { if err != nil { return err } - if _, err = io.Copy(fsTar, fs); err != nil { + if written, err := io.Copy(fsTar, fs); err != nil { + return err + } else { + utils.Debugf("rendered layer for %s of [%d] size", i.ID, written) + } + + if err = fsTar.Close(); err != nil { return err } - fsTar.Close() // find parent if i.Parent != "" { @@ -1537,6 +1542,8 @@ func (srv *Server) pushImage(r *registry.Registry, out io.Writer, remote, imgID, defer os.RemoveAll(layerData.Name()) // Send the layer + utils.Debugf("rendered layer for %s of [%d] size", imgData.ID, layerData.Size) + checksum, checksumPayload, err := r.PushImageLayerRegistry(imgData.ID, utils.ProgressReader(layerData, int(layerData.Size), out, sf, false, utils.TruncateID(imgData.ID), "Pushing"), ep, token, jsonRaw) if err != nil { return "", err