public WaitResult wait(int containerPort, DockerFacade dockerClient, Container container, BiFunction<String, Integer, WaitResult> waitFunction) {
for (Binding portBinding : getPortBindings(containerPort, container, dockerClient)) {
String ipAddress = portBinding.getHostIp();
if (ipAddress.equals(DEFAULT_BINDING)) {
ipAddress = dockerClient.hostInfo().getIpAddress();
}
int externalPort = Integer.valueOf(portBinding.getHostPortSpec());
LOG.info("Running wait against: [{}:{}]: [{}]: [{}]", ipAddress, externalPort, container.getName(), waitFunction.getClass().getName());
return waitFunction.apply(ipAddress, externalPort);
}
return WaitResult.success();
}