mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
'docker commit' records parent container id and command, in addition to parent image
This commit is contained in:
parent
8396798eba
commit
05ae69a6eb
6 changed files with 21 additions and 15 deletions
|
@ -384,7 +384,7 @@ func (srv *Server) CmdImport(stdin io.ReadCloser, stdout io.Writer, args ...stri
|
||||||
}
|
}
|
||||||
archive = ProgressReader(resp.Body, int(resp.ContentLength), stdout)
|
archive = ProgressReader(resp.Body, int(resp.ContentLength), stdout)
|
||||||
}
|
}
|
||||||
img, err := srv.runtime.graph.Create(archive, "", "Imported from "+src)
|
img, err := srv.runtime.graph.Create(archive, nil, "Imported from "+src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ func TestCommitRun(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
img, err := runtime.graph.Create(rwTar, container1.Image, "unit test commited image")
|
img, err := runtime.graph.Create(rwTar, container1, "unit test commited image")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
8
graph.go
8
graph.go
|
@ -47,13 +47,17 @@ func (graph *Graph) Get(id string) (*Image, error) {
|
||||||
return img, nil
|
return img, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (graph *Graph) Create(layerData Archive, parent, comment string) (*Image, error) {
|
func (graph *Graph) Create(layerData Archive, container *Container, comment string) (*Image, error) {
|
||||||
img := &Image{
|
img := &Image{
|
||||||
Id: GenerateId(),
|
Id: GenerateId(),
|
||||||
Parent: parent,
|
|
||||||
Comment: comment,
|
Comment: comment,
|
||||||
Created: time.Now(),
|
Created: time.Now(),
|
||||||
}
|
}
|
||||||
|
if container != nil {
|
||||||
|
img.Parent = container.Image
|
||||||
|
img.ParentContainer = container.Id
|
||||||
|
img.ParentCommand = append([]string{container.Path}, container.Args...)
|
||||||
|
}
|
||||||
if err := graph.Register(layerData, img); err != nil {
|
if err := graph.Register(layerData, img); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ func TestGraphCreate(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
image, err := graph.Create(archive, "", "Testing")
|
image, err := graph.Create(archive, nil, "Testing")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ func TestMount(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
image, err := graph.Create(archive, "", "Testing")
|
image, err := graph.Create(archive, nil, "Testing")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ func TestDelete(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
assertNImages(graph, t, 0)
|
assertNImages(graph, t, 0)
|
||||||
img, err := graph.Create(archive, "", "Bla bla")
|
img, err := graph.Create(archive, nil, "Bla bla")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -139,11 +139,11 @@ func TestDelete(t *testing.T) {
|
||||||
assertNImages(graph, t, 0)
|
assertNImages(graph, t, 0)
|
||||||
|
|
||||||
// Test 2 create (same name) / 1 delete
|
// Test 2 create (same name) / 1 delete
|
||||||
img1, err := graph.Create(archive, "foo", "Testing")
|
img1, err := graph.Create(archive, nil, "Testing")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if _, err = graph.Create(archive, "foo", "Testing"); err != nil {
|
if _, err = graph.Create(archive, nil, "Testing"); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
assertNImages(graph, t, 2)
|
assertNImages(graph, t, 2)
|
||||||
|
|
12
image.go
12
image.go
|
@ -15,11 +15,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Image struct {
|
type Image struct {
|
||||||
Id string
|
Id string
|
||||||
Parent string
|
Parent string
|
||||||
Comment string
|
Comment string
|
||||||
Created time.Time
|
Created time.Time
|
||||||
graph *Graph
|
ParentContainer string
|
||||||
|
ParentCommand []string
|
||||||
|
graph *Graph
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadImage(root string) (*Image, error) {
|
func LoadImage(root string) (*Image, error) {
|
||||||
|
|
|
@ -214,7 +214,7 @@ func (runtime *Runtime) Commit(id, repository, tag string) (*Image, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// Create a new image from the container's base layers + a new layer from container changes
|
// Create a new image from the container's base layers + a new layer from container changes
|
||||||
img, err := runtime.graph.Create(rwTar, container.Image, "")
|
img, err := runtime.graph.Create(rwTar, container, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue