В вашем кластере не найдено живых узлов |соединение отказано (Docker, PHP) - PullRequest
0 голосов
/ 14 мая 2019

ОБНОВЛЕННАЯ ИНФОРМАЦИЯ

С dd($clientBuilder->transport->getLastConnection()->getLastRequestInfo());

Я мог бы выйти из следующего

    "curl" => array:2 [
      "error" => "Failed to connect to localhost port 30003: Connection refused"

Но дело в Elasticsearchдоступен под localhost: 30003 через веб-браузер

Пример вывода при достижении этого сайта:

{

    "name": "xyz",
    "cluster_name": "docker-cluster",
...
}

Я настроил хост

        $clientBuilder = ClientBuilder::create()
            ->setHosts(['http://localhost:30003/'])
            ->build();

Когда я dd($clientBuilder), хост настроен на localhost: 30003

          #serializer: SmartSerializer {#385 …}
          #transportSchema: "http"
          #host: "localhost:30003"
          #path: "/"

Опять же, сервер запущен и работает, я могу связаться с ним через веб-браузер, но все равно получаю сообщение об ошибке:

В вашем кластере не найдено живых узлов

  • Версия Elasticsearch: 6.7.0

  • Elasticsearch PHP Версия: 6.7.0 (последняя версия)

В моем файле docker-compose я сопоставляю портОт 30003 до 9200

      ports:
        - "30003:9200"

1 Ответ

0 голосов
/ 14 мая 2019

Elasticsearch не вызвал ошибку.

cURL имел ошибку 7 , что означает, что не удалось установить соединение.

Мое решение, которое я нашел, было следующее:

        $clientBuilder = ClientBuilder::create()
            ->setHosts([
                [
                    'host' => 'docker.for.mac.localhost',
                    'port' => '30003'
                ]
            ])
            ->build();

Я перешел с localhost на docker.for.mac.localhost

Это помоглопотому что я использую Docker-контейнер, и каждый контейнер имеет свой IP-адрес

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...