Add versioning to docker image format. IMPORTANT: the format versioning is pegged to docker's versioning, so changes to the format MUST trigger an increment in version number.

This commit is contained in:
Solomon Hykes 2013-04-04 18:38:43 -07:00
parent 3de51b7bfe
commit 8bfbdd7afa
3 changed files with 8 additions and 3 deletions

View file

@ -85,9 +85,10 @@ func (graph *Graph) Get(name string) (*Image, error) {
// Create creates a new image and registers it in the graph.
func (graph *Graph) Create(layerData Archive, container *Container, comment string) (*Image, error) {
img := &Image{
Id: GenerateId(),
Comment: comment,
Created: time.Now(),
Id: GenerateId(),
Comment: comment,
Created: time.Now(),
DockerVersion: VERSION,
}
if container != nil {
img.Parent = container.Image

View file

@ -45,6 +45,9 @@ func TestGraphCreate(t *testing.T) {
if image.Comment != "Testing" {
t.Fatalf("Wrong comment: should be '%s', not '%s'", "Testing", image.Comment)
}
if image.DockerVersion != VERSION {
t.Fatalf("Wrong docker_version: should be '%s', not '%s'", VERSION, image.DockerVersion)
}
if images, err := graph.All(); err != nil {
t.Fatal(err)
} else if l := len(images); l != 1 {

View file

@ -20,6 +20,7 @@ type Image struct {
Created time.Time `json:"created"`
Container string `json:"container,omitempty"`
ContainerConfig Config `json:"container_config,omitempty"`
DockerVersion string `json:"docker_version,omitempty"`
graph *Graph
}