diff --git a/go/src/bashbrew/cmd-build.go b/go/src/bashbrew/cmd-build.go index 038b6fb..fa0195e 100644 --- a/go/src/bashbrew/cmd-build.go +++ b/go/src/bashbrew/cmd-build.go @@ -76,7 +76,7 @@ func cmdBuild(c *cli.Context) error { if err != nil { fmt.Printf("Building %s (%s)\n", cacheTag, r.EntryIdentifier(entry)) - commit, err := r.fetchGitRepo(&entry) + commit, err := r.fetchGitRepo(arch, &entry) if err != nil { return cli.NewMultiError(fmt.Errorf(`failed fetching git repo for %q (tags %q)`, r.RepoName, entry.TagsString()), err) } diff --git a/go/src/bashbrew/docker.go b/go/src/bashbrew/docker.go index bfe721e..608e798 100644 --- a/go/src/bashbrew/docker.go +++ b/go/src/bashbrew/docker.go @@ -19,7 +19,11 @@ import ( var dockerFromCache = map[string]string{} func (r Repo) DockerFrom(entry *manifest.Manifest2822Entry) (string, error) { - commit, err := r.fetchGitRepo(entry) + return r.ArchDockerFrom(arch, entry) +} + +func (r Repo) ArchDockerFrom(arch string, entry *manifest.Manifest2822Entry) (string, error) { + commit, err := r.fetchGitRepo(arch, entry) if err != nil { return "", err } @@ -56,6 +60,7 @@ func (r Repo) DockerFrom(entry *manifest.Manifest2822Entry) (string, error) { return from, nil } +// TODO determine multi-stage-builds impact here (once official images are willing/able to support them; post-17.06 at the earliest) func dockerfileFrom(dockerfile io.Reader) (string, error) { scanner := bufio.NewScanner(dockerfile) for scanner.Scan() { diff --git a/go/src/bashbrew/git.go b/go/src/bashbrew/git.go index b0b5d94..e09171d 100644 --- a/go/src/bashbrew/git.go +++ b/go/src/bashbrew/git.go @@ -103,7 +103,7 @@ func gitNormalizeForTagUsage(text string) string { var gitRepoCache = map[string]string{} -func (r Repo) fetchGitRepo(entry *manifest.Manifest2822Entry) (string, error) { +func (r Repo) fetchGitRepo(arch string, entry *manifest.Manifest2822Entry) (string, error) { cacheKey := strings.Join([]string{ entry.ArchGitRepo(arch), entry.ArchGitFetch(arch),