commit: do not change container labels on commit
Fix #29547
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
(cherry picked from commit ca6c6f0765
)
Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
parent
eefb2220c0
commit
428ae70759
2 changed files with 16 additions and 4 deletions
|
@ -65,11 +65,10 @@ func merge(userConf, imageConf *containertypes.Config) error {
|
|||
if userConf.Labels == nil {
|
||||
userConf.Labels = map[string]string{}
|
||||
}
|
||||
if imageConf.Labels != nil {
|
||||
for l := range userConf.Labels {
|
||||
imageConf.Labels[l] = userConf.Labels[l]
|
||||
for l, v := range imageConf.Labels {
|
||||
if _, ok := userConf.Labels[l]; !ok {
|
||||
userConf.Labels[l] = v
|
||||
}
|
||||
userConf.Labels = imageConf.Labels
|
||||
}
|
||||
|
||||
if len(userConf.Entrypoint) == 0 {
|
||||
|
|
|
@ -142,3 +142,16 @@ func (s *DockerSuite) TestCommitChange(c *check.C) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestCommitChangeLabels(c *check.C) {
|
||||
dockerCmd(c, "run", "--name", "test", "--label", "some=label", "busybox", "true")
|
||||
|
||||
imageID, _ := dockerCmd(c, "commit",
|
||||
"--change", "LABEL some=label2",
|
||||
"test", "test-commit")
|
||||
imageID = strings.TrimSpace(imageID)
|
||||
|
||||
c.Assert(inspectField(c, imageID, "Config.Labels"), checker.Equals, "map[some:label2]")
|
||||
// check that container labels didn't change
|
||||
c.Assert(inspectField(c, "test", "Config.Labels"), checker.Equals, "map[some:label]")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue