我想在网络上运行一个带有 testcontainers 的容器。我的容器包含一个 spring 应用程序,它有一个执行器端点来表达其状态,它位于:
/actuator/health
Run Code Online (Sandbox Code Playgroud)
我的容器如下所示:
private final static Network network = Network.newNetwork();
private static final GenericContainer<?> myContainer = new GenericContainer<>("mycontainer:latest")
.withExposedPorts(8443)
.withNetwork(network)
.withNetworkAliases("myContainer")
.withClasspathResourceMapping("certs", "/app/certs", BindMode.READ_ONLY)
.withClasspathResourceMapping("config", "/app/config", BindMode.READ_ONLY)
.withLogConsumer(new Slf4jLogConsumer(log))
.waitingFor(Wait.forHttp("/actuator/health").usingTls());
Run Code Online (Sandbox Code Playgroud)
但是当我启动这个容器时,出现以下错误:
Caused by: org.testcontainers.containers.ContainerLaunchException: Timed out waiting for URL to be accessible (https://localhost:33092/actuator/health should return HTTP [200])
at org.testcontainers.containers.wait.strategy.HttpWaitStrategy.waitUntilReady(HttpWaitStrategy.java:214)
at org.testcontainers.containers.wait.strategy.AbstractWaitStrategy.waitUntilReady(AbstractWaitStrategy.java:35)
at org.testcontainers.containers.GenericContainer.waitUntilContainerStarted(GenericContainer.java:890)
at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:441)
... 68 more
Run Code Online (Sandbox Code Playgroud)
但是,如果我在https://localhost:33092/actuator/health容器内的应用程序启动后但正在等待评估时卷曲此网址(在本例中:),我会得到如下内容:
HTTP Status Code: 200
{
"status": "UP"
}
Run Code Online (Sandbox Code Playgroud)
我缺少什么?有任何想法吗?这是一个错误吗?