浏览代码

Merge pull request #1921 from infosiftr/expose-cache-hash

Add DockerCacheName to be able to use it from templates
Tianon Gravi 9 年之前
父节点
当前提交
5529313e6d
共有 2 个文件被更改,包括 9 次插入3 次删除
  1. 1 3
      bashbrew/go/src/bashbrew/cmd-build.go
  2. 8 0
      bashbrew/go/src/bashbrew/docker.go

+ 1 - 3
bashbrew/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 {

+ 8 - 0
bashbrew/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 {