我正在使用 testcontainer 版本1.15.2
。测试在 Windows 10 上的 intellij 中运行。我有一个wiremock 容器。默认情况下,它侦听端口8080
。我想将这个端口映射到让我们说8081
。所以我这样做:
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);
}
创建容器时,它会侦听随机端口,而不是8081
[1]。我究竟做错了什么 ?我应该怎么做才能让容器监听8081
而不是随机端口?
[1]
- 我有另一个容器尝试连接
http://wiremock:8081
并不断获取Connection refused
- 当我添加时:
.waitingFor((...)forPort(8081)(...)));
发生超时。