mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Update api documentation to add labels in commit
It is already possible to set labels at commit when using the API. But it is not present in the API documentation. Added an integration test too, to validate this work (and will be in the future). Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
parent
04c6f09fbd
commit
c61fa8471a
3 changed files with 59 additions and 0 deletions
|
@ -1752,6 +1752,10 @@ Create a new image from a container's changes
|
|||
"Volumes": {
|
||||
"/tmp": {}
|
||||
},
|
||||
"Labels": {
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
},
|
||||
"WorkingDir": "",
|
||||
"NetworkDisabled": false,
|
||||
"ExposedPorts": {
|
||||
|
|
|
@ -1743,6 +1743,10 @@ Create a new image from a container's changes
|
|||
"Volumes": {
|
||||
"/tmp": {}
|
||||
},
|
||||
"Labels": {
|
||||
"key1": "value1",
|
||||
"key2": "value2"
|
||||
},
|
||||
"WorkingDir": "",
|
||||
"NetworkDisabled": false,
|
||||
"ExposedPorts": {
|
||||
|
|
|
@ -725,6 +725,57 @@ func (s *DockerSuite) TestContainerApiCommit(c *check.C) {
|
|||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestContainerApiCommitWithLabelInConfig(c *check.C) {
|
||||
cName := "testapicommitwithconfig"
|
||||
out, err := exec.Command(dockerBinary, "run", "--name="+cName, "busybox", "/bin/sh", "-c", "touch /test").CombinedOutput()
|
||||
if err != nil {
|
||||
c.Fatal(err, out)
|
||||
}
|
||||
|
||||
config := map[string]interface{}{
|
||||
"Labels": map[string]string{"key1": "value1", "key2": "value2"},
|
||||
}
|
||||
|
||||
name := "TestContainerApiCommitWithConfig"
|
||||
status, b, err := sockRequest("POST", "/commit?repo="+name+"&container="+cName, config)
|
||||
c.Assert(status, check.Equals, http.StatusCreated)
|
||||
c.Assert(err, check.IsNil)
|
||||
|
||||
type resp struct {
|
||||
Id string
|
||||
}
|
||||
var img resp
|
||||
if err := json.Unmarshal(b, &img); err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
|
||||
label1, err := inspectFieldMap(img.Id, "Config.Labels", "key1")
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
c.Assert(label1, check.Equals, "value1")
|
||||
|
||||
label2, err := inspectFieldMap(img.Id, "Config.Labels", "key2")
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
c.Assert(label2, check.Equals, "value2")
|
||||
|
||||
cmd, err := inspectField(img.Id, "Config.Cmd")
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
if cmd != "{[/bin/sh -c touch /test]}" {
|
||||
c.Fatalf("got wrong Cmd from commit: %q", cmd)
|
||||
}
|
||||
|
||||
// sanity check, make sure the image is what we think it is
|
||||
out, err = exec.Command(dockerBinary, "run", img.Id, "ls", "/test").CombinedOutput()
|
||||
if err != nil {
|
||||
c.Fatalf("error checking committed image: %v - %q", err, string(out))
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestContainerApiCreate(c *check.C) {
|
||||
config := map[string]interface{}{
|
||||
"Image": "busybox",
|
||||
|
|
Loading…
Add table
Reference in a new issue