我尝试使用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/