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>
This commit is contained in:
Paul Holzinger
2021-08-24 10:23:10 +02:00
parent 2de56a5f41
commit 4b2dc48d0b
12 changed files with 110 additions and 24 deletions

View File

@ -99,6 +99,11 @@ func (c *Container) Commit(ctx context.Context, destImage string, options Contai
for _, p := range c.config.PortMappings {
importBuilder.SetPort(fmt.Sprintf("%d/%s", p.ContainerPort, p.Protocol))
}
for port, protocols := range c.config.ExposedPorts {
for _, protocol := range protocols {
importBuilder.SetPort(fmt.Sprintf("%d/%s", port, protocol))
}
}
// Labels
for k, v := range c.Labels() {
importBuilder.SetLabel(k, v)