从golang主机应用程序连接到在Docker中运行的elasticsearch 6.4

时间:2018-11-09 15:09:45

标签: docker elasticsearch go docker-compose elasticsearch-6

Go ES客户端https://godoc.org/gopkg.in/olivere/elastic.v6尝试从OS X主机连接到在Docker容器中运行的ES时,引发“找不到活动连接:没有可用的Elasticsearch节点”错误。 关于如何在v5中解决它有很多讨论。*,但是,对于v6.4我什么都找不到。

Docker组成部分:

elasticsearch:
    image: elasticsearch:6.4.2
    network_mode: "bridge"
    expose:
      - "9200"
      - "9300"
    volumes:
      - ./es-data:/usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"

去客户电话:

esClient, esClientErr :=             
elastic.NewClient(elastic.SetURL("http://127.0.0.1:9200"))
if esClientErr != nil {
    return nil, fmt.Errorf("Failed to connect to ES: %v", esClientErr)
}

输出:

2018/11/09 15:57:54 Failed to connect to ES: no active connection found: no Elasticsearch node available
exit status 1

更新

设置network.publish_host: "_local_"解决了该问题。 publish_address现在设置为127.0.0.1:9300

0 个答案:

没有答案