From b39728673942a974d452989e043c363ee6c10935 Mon Sep 17 00:00:00 2001 From: Tyler Date: Wed, 10 Apr 2024 15:58:11 -0400 Subject: [PATCH] Retry failed calls to MappedPort to workaround inspect problem --- docker.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docker.go b/docker.go index 6d10cf92a0..7dcc6bb1cd 100644 --- a/docker.go +++ b/docker.go @@ -157,7 +157,16 @@ func (c *DockerContainer) Host(ctx context.Context) (string, error) { } // MappedPort gets externally mapped port for a container port -func (c *DockerContainer) MappedPort(ctx context.Context, port nat.Port) (nat.Port, error) { +func (c *DockerContainer) MappedPort(ctx context.Context, port nat.Port) (mappedPort nat.Port, err error) { + err = backoff.Retry(func() (err error) { + mappedPort, err = c.mappedPort(ctx, port) + return + }, backoff.WithContext(backoff.NewExponentialBackOff(), ctx)) + + return +} + +func (c *DockerContainer) mappedPort(ctx context.Context, port nat.Port) (nat.Port, error) { inspect, err := c.inspectContainer(ctx) if err != nil { return "", err