github.com/cvmfs/docker-graphdriver@v0.0.0-20181206110523-155ec6df0521/docker2cvmfs/lib/descriptor.go (about)

     1  package lib
     2  
     3  import (
     4  	"strings"
     5  
     6  	cvmfsUtil "github.com/cvmfs/docker-graphdriver/plugins/util"
     7  )
     8  
     9  // m is the manifest of the original image
    10  // repoLocation is where inside the repo we saved the several layers
    11  // origin is an ecoding fo the original referencese and original registry
    12  // I believe origin is quite useless but maybe is better to preserv it for
    13  // ergonomic reasons.
    14  func MakeThinImage(m Manifest, repoLocation string, origin string) cvmfsUtil.ThinImage {
    15  	layers := make([]cvmfsUtil.ThinImageLayer, len(m.Layers))
    16  
    17  	url_base := "cvmfs://" + repoLocation
    18  	for i, l := range m.Layers {
    19  		d := strings.Split(l.Digest, ":")[1]
    20  		url := url_base + "/" + d
    21  		layers[i] = cvmfsUtil.ThinImageLayer{Digest: d, Url: url}
    22  	}
    23  
    24  	return cvmfsUtil.ThinImage{Layers: layers,
    25  		Origin:  origin,
    26  		Version: thinImageVersion}
    27  }