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
сейчас.