// CopyImagePathContent copies files in destination to the volume. func (container *Container) CopyImagePathContent(v volume.Volume, destination string) error { rootfs, err := symlink.FollowSymlinkInScope(filepath.Join(container.BaseFS, destination), container.BaseFS) if err != nil { return err } if _, err = ioutil.ReadDir(rootfs); err != nil { if os.IsNotExist(err) { return nil } return err } id := stringid.GenerateNonCryptoID() path, err := v.Mount(id) if err != nil { return err } defer func() { if err := v.Unmount(id); err != nil { logrus.Warnf("error while unmounting volume %s: %v", v.Name(), err) } }() return copyExistingContents(rootfs, path) }
// CopyImagePathContent copies files in destination to the volume. func (container *Container) CopyImagePathContent(v volume.Volume, destination string) error { rootfs, err := symlink.FollowSymlinkInScope(filepath.Join(container.BaseFS, destination), container.BaseFS) if err != nil { return err } if _, err = ioutil.ReadDir(rootfs); err != nil { if os.IsNotExist(err) { return nil } return err } path, err := v.Mount() if err != nil { return err } defer v.Unmount() return copyExistingContents(rootfs, path) }