Merge pull request #9970 from shishir-a412ed/docker_load_issue

Implementation of docker load command, load the tar ball directly into /var/lib/docker/graph
This commit is contained in:
Vincent Batts 2015-01-20 14:15:41 -05:00
commit 092d52281d

View file

@ -4,7 +4,6 @@ package graph
import (
"encoding/json"
"io"
"io/ioutil"
"os"
"path"
@ -27,23 +26,9 @@ func (s *TagStore) CmdLoad(job *engine.Job) engine.Status {
defer os.RemoveAll(tmpImageDir)
var (
repoTarFile = path.Join(tmpImageDir, "repo.tar")
repoDir = path.Join(tmpImageDir, "repo")
repoDir = path.Join(tmpImageDir, "repo")
)
tarFile, err := os.Create(repoTarFile)
if err != nil {
return job.Error(err)
}
if _, err := io.Copy(tarFile, job.Stdin); err != nil {
return job.Error(err)
}
tarFile.Close()
repoFile, err := os.Open(repoTarFile)
if err != nil {
return job.Error(err)
}
if err := os.Mkdir(repoDir, os.ModeDir); err != nil {
return job.Error(err)
}
@ -57,7 +42,7 @@ func (s *TagStore) CmdLoad(job *engine.Job) engine.Status {
excludes[i] = k
i++
}
if err := chrootarchive.Untar(repoFile, repoDir, &archive.TarOptions{ExcludePatterns: excludes}); err != nil {
if err := chrootarchive.Untar(job.Stdin, repoDir, &archive.TarOptions{ExcludePatterns: excludes}); err != nil {
return job.Error(err)
}