diff options
author | Paul Holzinger <pholzing@redhat.com> | 2021-08-24 10:23:10 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2021-08-24 15:44:26 +0200 |
commit | 4b2dc48d0bcde9d9dccb05f829019a52f3eddec7 (patch) | |
tree | 71ea2ef8e45e73de5ba47c707ab15d7edb8a15e3 /libpod/util.go | |
parent | 2de56a5f41473e8f759972ec568089e9cddc0f98 (diff) | |
download | podman-4b2dc48d0bcde9d9dccb05f829019a52f3eddec7.tar.gz podman-4b2dc48d0bcde9d9dccb05f829019a52f3eddec7.tar.bz2 podman-4b2dc48d0bcde9d9dccb05f829019a52f3eddec7.zip |
podman inspect show exposed ports
Podman inspect has to show exposed ports to match docker. This requires
storing the exposed ports in the container config.
A exposed port is shown as `"80/tcp": null` while a forwarded port is
shown as `"80/tcp": [{"HostIp": "", "HostPort": "8080" }]`.
Also make sure to add the exposed ports to the new image when the
container is commited.
Fixes #10777
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'libpod/util.go')
-rw-r--r-- | libpod/util.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libpod/util.go b/libpod/util.go index 3b32fb264..ed5c4e6c6 100644 --- a/libpod/util.go +++ b/libpod/util.go @@ -295,8 +295,8 @@ func writeHijackHeader(r *http.Request, conn io.Writer) { } // Convert OCICNI port bindings into Inspect-formatted port bindings. -func makeInspectPortBindings(bindings []ocicni.PortMapping) map[string][]define.InspectHostPort { - portBindings := make(map[string][]define.InspectHostPort) +func makeInspectPortBindings(bindings []ocicni.PortMapping, expose map[uint16][]string) map[string][]define.InspectHostPort { + portBindings := make(map[string][]define.InspectHostPort, len(bindings)) for _, port := range bindings { key := fmt.Sprintf("%d/%s", port.ContainerPort, port.Protocol) hostPorts := portBindings[key] @@ -309,6 +309,15 @@ func makeInspectPortBindings(bindings []ocicni.PortMapping) map[string][]define. }) portBindings[key] = hostPorts } + // add exposed ports without host port information to match docker + for port, protocols := range expose { + for _, protocol := range protocols { + key := fmt.Sprintf("%d/%s", port, protocol) + if _, ok := portBindings[key]; !ok { + portBindings[key] = nil + } + } + } return portBindings } |