use ValidateContextDirectory to validate context

This commit makes the Docker cli client use ValidateContextDirectory
before attempting to create a tarball out of the context. This ensures
we avoid errors such as "unexpected EOF" during the upload of the
context.

This check is done before uploading any data and can save time and
bandwidth for remote Docker daemons.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Upstream-commit: 33d5b38d62f48edcadbe239595e242300f3ecd27
Component: engine
This commit is contained in:
unclejack
2014-05-17 02:38:29 +03:00
parent e59443d033
commit 237489fbeb
+3
View File
@@ -161,6 +161,9 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
if _, err = os.Stat(filename); os.IsNotExist(err) {
return fmt.Errorf("no Dockerfile found in %s", cmd.Arg(0))
}
if err = utils.ValidateContextDirectory(root); err != nil {
return fmt.Errorf("Error checking context is accessible: '%s'. Please check permissions and try again.", err)
}
context, err = archive.Tar(root, archive.Uncompressed)
}
var body io.Reader