From 33d5b38d62f48edcadbe239595e242300f3ecd27 Mon Sep 17 00:00:00 2001 From: unclejack Date: Sat, 10 May 2014 11:03:53 +0300 Subject: [PATCH] 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 (github: unclejack) --- api/client/commands.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/client/commands.go b/api/client/commands.go index 502c1be69e..f7eca7d358 100644 --- a/api/client/commands.go +++ b/api/client/commands.go @@ -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