1
は:はドッカー作曲でElasticsearchに接続するために、どのように私はJava APIを使用してElasticsearchインスタンスに私のWebアプリから接続
static Optional<Client> getClient(String hostName, int port) {
return getHost(hostName).map(host -> TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(host, port))
);
}
static Optional<InetAddress> getHost(String hostName) {
InetAddress host = null;
try {
host = InetAddress.getByName(hostName);
} catch (UnknownHostException e) {
LOG.warn("Could not get host: {}", hostName, e);
}
return Optional.ofNullable(host);
}
Docker Composeに切り替える前に、私は
docker run --net=my-network --name=myDb elasticsearch
とを使用してElasticsearchを開始しました私のウェブアプリを使用して
docker run --net=my-network -p 8080:4567 me/myapp
と確かに、私はデータベースに接続することができます私たちgetClient("myDb", 9300)
。
私はDocker Composeに切り替えたので、Elasticsearchに接続する方法はわかりません。これは私の現在のdocker-compose.yml
です:私はdocker-compose.yml
で私Elasticsearchインスタンスのホスト名を設定していないので、
version: '2'
services:
my-app:
image: me/myapp
ports:
- "8080:4567"
networks:
- my-network
elasticsearch:
image: elasticsearch
networks:
- my-network
networks:
my-network:
driver: bridge
当然のことながら、これはUnknownHostException
になります。
どうすればよいですか?