1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

support changes in commit job

In addition to config env, `commit` now will also accepts a `changes` env which
is a string contains new-line separated Dockerfile instructions.
`commit` will evaluate `changes` into `runconfig.Config` and merge it with
`config` env, and then finally commit a new image with the changed config

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: rhatdan)
This commit is contained in:
Daniel, Dao Quang Minh 2014-10-01 05:35:44 -04:00 committed by Dan Walsh
parent 7f091eca70
commit b30257ccf9
2 changed files with 49 additions and 3 deletions

View file

@ -202,3 +202,36 @@ func TestCommitWithHostBindMount(t *testing.T) {
logDone("commit - commit bind mounted file")
}
func TestCommitChange(t *testing.T) {
defer deleteAllContainers()
cmd(t, "run", "--name", "test", "busybox", "true")
cmd := exec.Command(dockerBinary, "commit",
"--change", "EXPOSE 8080",
"--change", "ENV DEBUG true",
"test", "test-commit")
imageId, _, err := runCommandWithOutput(cmd)
if err != nil {
t.Fatal(imageId, err)
}
imageId = strings.Trim(imageId, "\r\n")
defer deleteImages(imageId)
expected := map[string]string{
"Config.ExposedPorts": "map[8080/tcp:map[]]",
"Config.Env": "[DEBUG=true PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]",
}
for conf, value := range expected {
res, err := inspectField(imageId, conf)
if err != nil {
t.Errorf("failed to get value %s, error: %s", conf, err)
}
if res != value {
t.Errorf("%s('%s'), expected %s", conf, res, value)
}
}
logDone("commit - commit --change")
}