diff --git a/integration-cli/docker_cli_create_test.go b/integration-cli/docker_cli_create_test.go index 482e96f9dc..09e5ee8785 100644 --- a/integration-cli/docker_cli_create_test.go +++ b/integration-cli/docker_cli_create_test.go @@ -229,7 +229,7 @@ func (s *DockerSuite) TestCreateLabelFromImage(c *check.C) { } name := "test_create_labels_from_image" - expected := map[string]string{"k2": "x", "k3": "v3"} + expected := map[string]string{"k2": "x", "k3": "v3", "k1": "v1"} dockerCmd(c, "create", "--name", name, "-l", "k2=x", "--label", "k3=v3", imageName) actual := make(map[string]string) diff --git a/runconfig/merge.go b/runconfig/merge.go index 9a020a8894..0106c7ea11 100644 --- a/runconfig/merge.go +++ b/runconfig/merge.go @@ -47,6 +47,16 @@ func Merge(userConf, imageConf *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] + } + userConf.Labels = imageConf.Labels + } + if userConf.Entrypoint.Len() == 0 { if userConf.Cmd.Len() == 0 { userConf.Cmd = imageConf.Cmd