I'm using testcontainer version 1.15.2. Tests are run in intellij on windows 10.
I have a wiremock container. By default it listens on the port 8080. I would like to map this port to let's say 8081. So I do:
public WiremockContainer() {
super("wiremock/wiremock:2.9.0-alpine");
self()
.waitingFor(Wait.forLogMessage(".*port:\\s*8080.*", 1)
.withStartupTimeout(Duration.ofSeconds(25L)))
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig()
.withPortBindings(new PortBinding(Ports.Binding.bindPort(8081), new ExposedPort(8080)))
)
.withNetworkAliases("wiremock")
.withExposedPorts(8081);
}
When the container is created it listens on the random port, not the 8081[1]. What am I doing wrong ? What should I do to make the container listen on 8081 instead of the random port ?
[1]
http://wiremock:8081 and keep getting Connection refused.waitingFor((...)forPort(8081)(...))); timeout occurs.You can use set port bindings
List<String> portBindings = new ArrayList<>();
portBindings.add("5673:5672"); // hostPort:containerPort
portBindings.add("15673:15672"); // hostPort:containerPort
container.setPortBindings(portBindings);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With