Merge pull request #4073 from crosbymichael/fix-docker-cp-close
Ensure docker cp stream is closed properly
This commit is contained in:
commit
c6edac9a1a
|
@ -1427,7 +1427,7 @@ func (container *Container) GetSize() (int64, int64) {
|
||||||
return sizeRw, sizeRootfs
|
return sizeRw, sizeRootfs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (container *Container) Copy(resource string) (archive.Archive, error) {
|
func (container *Container) Copy(resource string) (io.ReadCloser, error) {
|
||||||
if err := container.Mount(); err != nil {
|
if err := container.Mount(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -1454,7 +1454,7 @@ func (container *Container) Copy(resource string) (archive.Archive, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return EofReader(archive, func() { container.Unmount() }), nil
|
return utils.NewReadCloserWrapper(archive, container.Unmount), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if the container exposes a certain port
|
// Returns true if the container exposes a certain port
|
||||||
|
|
|
@ -2341,6 +2341,7 @@ func (srv *Server) ContainerCopy(job *engine.Job) engine.Status {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return job.Error(err)
|
return job.Error(err)
|
||||||
}
|
}
|
||||||
|
defer data.Close()
|
||||||
|
|
||||||
if _, err := io.Copy(job.Stdout, data); err != nil {
|
if _, err := io.Copy(job.Stdout, data); err != nil {
|
||||||
return job.Error(err)
|
return job.Error(err)
|
||||||
|
|
Loading…
Reference in New Issue