From a712a5d84747875fa7f2da08b44d4de46df6ff01 Mon Sep 17 00:00:00 2001 From: Joe Ferguson Date: Wed, 6 Jul 2016 13:27:39 -0700 Subject: [PATCH] Add DockerCacheName to be able to use it from templates - like the following to get golang:latest and the cache name of its parent ```console $ bashbrew cat --format '{{ range .Entries }}{{ $.DockerCacheName . }}{{ range .Tags }}{{"\n"}}{{ join ":" $.RepoName . }}{{end}}{{"\n"}}{{end}}' golang:latest ``` --- go/src/bashbrew/cmd-build.go | 4 +--- go/src/bashbrew/docker.go | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/go/src/bashbrew/cmd-build.go b/go/src/bashbrew/cmd-build.go index c3d7630..6e10f90 100644 --- a/go/src/bashbrew/cmd-build.go +++ b/go/src/bashbrew/cmd-build.go @@ -65,13 +65,11 @@ func cmdBuild(c *cli.Context) error { } } - cacheHash, err := r.dockerCacheHash(&entry) + cacheTag, err := r.DockerCacheName(&entry) if err != nil { return cli.NewMultiError(fmt.Errorf(`failed calculating "cache hash" for %q (tags %q)`, r.RepoName, entry.TagsString()), err) } - cacheTag := "bashbrew/cache:" + cacheHash - // check whether we've already built this artifact _, err = dockerInspect("{{.Id}}", cacheTag) if err != nil { diff --git a/go/src/bashbrew/docker.go b/go/src/bashbrew/docker.go index e440ed9..c22d162 100644 --- a/go/src/bashbrew/docker.go +++ b/go/src/bashbrew/docker.go @@ -82,6 +82,14 @@ func dockerfileFrom(dockerfile io.Reader) (string, error) { return "", nil } +func (r Repo) DockerCacheName(entry *manifest.Manifest2822Entry) (string, error) { + cacheHash, err := r.dockerCacheHash(entry) + if err != nil { + return "", err + } + return "bashbrew/cache:" + cacheHash, err +} + func (r Repo) dockerCacheHash(entry *manifest.Manifest2822Entry) (string, error) { uniqueBits, err := r.dockerBuildUniqueBits(entry) if err != nil {