зеркало из https://github.com/microsoft/docker.git
Fix automatically publish ports without --publish-all
Signed-off-by: Lei Jitang <leijitang@huawei.com>
This commit is contained in:
Родитель
c2e8f07a05
Коммит
9a09664b51
|
@ -3186,3 +3186,14 @@ func (s *DockerSuite) TestRunUnshareProc(c *check.C) {
|
|||
c.Fatalf("unshare should have failed with permission denied, got: %s, %v", out, err)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestRunPublishPort(c *check.C) {
|
||||
out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "run", "-d", "--name", "test", "--expose", "8080", "busybox", "top"))
|
||||
c.Assert(err, check.IsNil)
|
||||
out, _, err = runCommandWithOutput(exec.Command(dockerBinary, "port", "test"))
|
||||
c.Assert(err, check.IsNil)
|
||||
out = strings.Trim(out, "\r\n")
|
||||
if out != "" {
|
||||
c.Fatalf("run without --publish-all should not publish port, out should be nil, but got: %s", out)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,10 +60,10 @@ func SortPortMap(ports []Port, bindings PortMap) {
|
|||
for _, b := range binding {
|
||||
s = append(s, portMapEntry{port: p, binding: b})
|
||||
}
|
||||
bindings[p] = []PortBinding{}
|
||||
} else {
|
||||
s = append(s, portMapEntry{port: p})
|
||||
}
|
||||
bindings[p] = []PortBinding{}
|
||||
}
|
||||
|
||||
sort.Sort(s)
|
||||
|
@ -79,7 +79,9 @@ func SortPortMap(ports []Port, bindings PortMap) {
|
|||
i++
|
||||
}
|
||||
// reorder bindings for this port
|
||||
bindings[entry.port] = append(bindings[entry.port], entry.binding)
|
||||
if _, ok := bindings[entry.port]; ok {
|
||||
bindings[entry.port] = append(bindings[entry.port], entry.binding)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче