|
@@ -23,6 +23,7 @@ import (
|
|
"github.com/docker/docker/image"
|
|
"github.com/docker/docker/image"
|
|
"github.com/docker/docker/pkg/archive"
|
|
"github.com/docker/docker/pkg/archive"
|
|
"github.com/docker/docker/pkg/broadcastwriter"
|
|
"github.com/docker/docker/pkg/broadcastwriter"
|
|
|
|
+ "github.com/docker/docker/pkg/fileutils"
|
|
"github.com/docker/docker/pkg/ioutils"
|
|
"github.com/docker/docker/pkg/ioutils"
|
|
"github.com/docker/docker/pkg/jsonlog"
|
|
"github.com/docker/docker/pkg/jsonlog"
|
|
"github.com/docker/docker/pkg/mount"
|
|
"github.com/docker/docker/pkg/mount"
|
|
@@ -627,6 +628,14 @@ func (container *Container) Copy(resource string) (io.ReadCloser, error) {
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
+ var stat os.FileInfo
|
|
|
|
+ stat, err = os.Stat(m.Source)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ if err = fileutils.CreateIfNotExists(dest, stat.IsDir()); err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
if err = mount.Mount(m.Source, dest, "bind", "rbind,ro"); err != nil {
|
|
if err = mount.Mount(m.Source, dest, "bind", "rbind,ro"); err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|