|
@@ -81,9 +81,6 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
|
|
err error
|
|
err error
|
|
)
|
|
)
|
|
|
|
|
|
- _, err = exec.LookPath("git")
|
|
|
|
- hasGit := err == nil
|
|
|
|
-
|
|
|
|
specifiedContext := cmd.Arg(0)
|
|
specifiedContext := cmd.Arg(0)
|
|
|
|
|
|
var (
|
|
var (
|
|
@@ -104,7 +101,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
|
|
switch {
|
|
switch {
|
|
case specifiedContext == "-":
|
|
case specifiedContext == "-":
|
|
context, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
|
|
context, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
|
|
- case urlutil.IsGitURL(specifiedContext) && hasGit:
|
|
|
|
|
|
+ case urlutil.IsGitURL(specifiedContext):
|
|
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
|
|
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
|
|
case urlutil.IsURL(specifiedContext):
|
|
case urlutil.IsURL(specifiedContext):
|
|
context, relDockerfile, err = getContextFromURL(progBuff, specifiedContext, *dockerfileName)
|
|
context, relDockerfile, err = getContextFromURL(progBuff, specifiedContext, *dockerfileName)
|
|
@@ -503,6 +500,9 @@ func getContextFromReader(r io.ReadCloser, dockerfileName string) (out io.ReadCl
|
|
// path of the dockerfile in that context directory, and a non-nil error on
|
|
// path of the dockerfile in that context directory, and a non-nil error on
|
|
// success.
|
|
// success.
|
|
func getContextFromGitURL(gitURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
|
|
func getContextFromGitURL(gitURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
|
|
|
|
+ if _, err := exec.LookPath("git"); err != nil {
|
|
|
|
+ return "", "", fmt.Errorf("unable to find 'git': %v", err)
|
|
|
|
+ }
|
|
if absContextDir, err = gitutils.Clone(gitURL); err != nil {
|
|
if absContextDir, err = gitutils.Clone(gitURL); err != nil {
|
|
return "", "", fmt.Errorf("unable to 'git clone' to temporary context directory: %v", err)
|
|
return "", "", fmt.Errorf("unable to 'git clone' to temporary context directory: %v", err)
|
|
}
|
|
}
|