【发布时间】:2022-01-15 04:52:16
【问题描述】:
我正在尝试移动应用程序以使用 Elasticsearch 容器编写测试。容器确实出现并检查其elasticsearchContainer.isRunning() 状态返回true,但在发出搜索请求时Connection Refused 抛出异常。从Spring boot, ElasticSearch and TestContainers integration tests. Connection refused 我添加了一个等待,但同样的问题仍然存在。
private static final DockerImageName ELASTICSEARCH_IMAGE =
DockerImageName.parse("docker.elastic.co/elasticsearch/elasticsearch").withTag("7.11.2");
elasticsearchContainer = new ElasticsearchContainer(ELASTICSEARCH_IMAGE)
.withEnv("foo", "bar");
elasticsearchContainer.addExposedPorts(9200, 9300);
//elasticsearchContainer.withStartupTimeout(Duration.of(5, ChronoUnit.MINUTES));
elasticsearchContainer.setWaitStrategy(
Wait.forHttp("/")
.forPort(9200)
.forStatusCode(200)
.withStartupTimeout(Duration.ofSeconds(300)));
elasticsearchContainer.start();
assert elasticsearchContainer.isRunning() == true;
System.out.println("ES Get mapped port" + elasticsearchContainer.getMappedPort(9200)); // outputs a random 5 digit number
try {
SearchResponse response = getClient(elasticsearchContainer).search(new SearchRequest(), RequestOptions.DEFAULT); // ERRORS OUT HERE
System.out.println(response);
} catch (IOException e) {
System.out.println("ERROR WHILE getting data " + e.getMessage());
}
容器启动正常,日志中也没有错误:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48b1cc29fea8 docker.elastic.co/elasticsearch/elasticsearch:7.11.2 "/bin/tini -- /usr/l…" 24 seconds ago Up 23 seconds 0.0.0.0:64492->9200/tcp, 0.0.0.0:64493->9300/tcp vigorous_banzai
d64503cd1a71 testcontainers/ryuk:0.3.3 "/app" 25 seconds ago Up 24 seconds 0.0.0.0:64490->8080/tcp testcontainers-ryuk-bc01909a-5fcc-424e-8346-a7560c31c989
关于如何使连接工作的任何建议?
【问题讨论】:
标签: elasticsearch testcontainers testcontainers-junit5