小编Fiv*_*ive的帖子

带弹簧执行器的测试容器

我想在网络上运行一个带有 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)

我缺少什么?有任何想法吗?这是一个错误吗?

java docker spring-boot testcontainers

6
推荐指数
1
解决办法
791
查看次数

标签 统计

docker ×1

java ×1

spring-boot ×1

testcontainers ×1