Merge pull request from matejvasek/fix_host_port

Docker [APIv2] create container: handle empty host port
This commit is contained in:
OpenShift Merge Robot
2021-02-16 08:44:27 -05:00
committed by GitHub
2 changed files with 12 additions and 1 deletions
cmd/podman/common
test/python/docker

@ -223,7 +223,11 @@ func ContainerCreateToContainerCLIOpts(cc handlers.CreateContainerConfig, cgroup
// publish // publish
for port, pbs := range cc.HostConfig.PortBindings { for port, pbs := range cc.HostConfig.PortBindings {
for _, pb := range pbs { for _, pb := range pbs {
hostport, err := strconv.Atoi(pb.HostPort) var hostport int
var err error
if pb.HostPort != "" {
hostport, err = strconv.Atoi(pb.HostPort)
}
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }

@ -86,6 +86,13 @@ class TestContainers(unittest.TestCase):
containers = self.client.containers.list(all=True) containers = self.client.containers.list(all=True)
self.assertEqual(len(containers), 2) self.assertEqual(len(containers), 2)
def test_start_container_with_random_port_bind(self):
container = self.client.containers.create(image=constant.ALPINE,
name="containerWithRandomBind",
ports={'1234/tcp': None})
containers = self.client.containers.list(all=True)
self.assertTrue(container in containers)
def test_stop_container(self): def test_stop_container(self):
top = self.client.containers.get(TestContainers.topContainerId) top = self.client.containers.get(TestContainers.topContainerId)
self.assertEqual(top.status, "running") self.assertEqual(top.status, "running")