diff --git a/build/git.go b/build/git.go index 8cabbb07..9dbc55de 100644 --- a/build/git.go +++ b/build/git.go @@ -6,6 +6,7 @@ import ( "path/filepath" "strconv" "strings" + "time" "github.com/docker/buildx/util/gitutil" specs "github.com/opencontainers/image-spec/specs-go/v1" @@ -15,6 +16,9 @@ import ( const DockerfileLabel = "com.docker.image.source.entrypoint" func getGitAttributes(ctx context.Context, contextPath string, dockerfilePath string) (res map[string]string) { + ctx, cancel := context.WithTimeout(ctx, 2*time.Second) + defer cancel() + res = make(map[string]string) if contextPath == "" { return diff --git a/util/gitutil/gitutil.go b/util/gitutil/gitutil.go index 953d282f..343d27e5 100644 --- a/util/gitutil/gitutil.go +++ b/util/gitutil/gitutil.go @@ -98,7 +98,7 @@ func (c *Git) run(args ...string) (string, error) { } args = append(extraArgs, args...) - cmd := exec.Command("git", args...) + cmd := exec.CommandContext(c.ctx, "git", args...) if c.wd != "" { cmd.Dir = c.wd }