Подключитесь кasticsearch 6.4, работающему в Docker, из хост-приложения golang - PullRequest
0 голосов
/ 09 ноября 2018

Go ES client https://godoc.org/gopkg.in/olivere/elastic.v6 выдает ошибку «не найдено активное соединение: узел Elasticsearch недоступен» при попытке подключения с хоста OS X к ES, работающему в док-контейнере. Существует много дискуссий о том, как решить эту проблему в 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

UPDATE

Установка network.publish_host: "_local_" решила проблему. publish_address установлен на 127.0.0.1:9300 сейчас.

...