我尝试使用elasticsearch容器编写测试。
我用https://www.testcontainers.org/库运行它。
那是我的配置:

@ClassRule
public static GenericContainer elasticContainer =
        new GenericContainer("docker.elastic.co/elasticsearch/elasticsearch:5.3.0")
                .withExposedPorts(9300, 9200)
                .withEnv("xpack.security.enabled", "false")
                .withEnv("transport.host", "127.0.0.1")
                .withEnv("http.host", "0.0.0.0");

我有一个异常(exception):
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{9fuJUZYWS6O6IgLGOgJDaA}{localhost}{127.0.0.1:32792}]

我重新配置了用于测试的端口,并且9200端口可用(在testcontainer映射的端口上)-我通过curl对其进行了检查。但是9300不是。

有人知道如何解决传输主机问题吗?

最佳答案

对于现在遇到此问题的任何人,请注意,从Testcontainers 1.10.1开始,我们将Elasticsearch作为Testcontainers库中的官方模块。希望您应该发现这比使用GenericContainer滚动自己的要容易得多!

用法记录在here中。

关于Elasticsearch和Testcontainers用于测试 "None of the configured nodes are available",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43323099/

10-11 17:44