Запустите ElasticSearch в Wercker

У нас есть проект Ruby, в котором мы используем Wercker в качестве непрерывной интеграции.

Нам нужно запустить сервис Elastic Search, чтобы запустить некоторые интеграционные тесты.

Локально мы добавили конфигурацию Elastic в файл Docker, и все прошло гладко:

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"
      - "9300:9300"

В файле Wercker.yml мы попробовали несколько вещей, но мы не можем достичь эластичного сервиса. Наш wercker.yml содержит:

services:
  - id: elasticsearch:6.5.1
    env:
      ports:
        - "9200:9200"
        - "9300:9300"

У нас есть этот король ошибки при попытке использовать Elastic в наших тестах:

Errno::EADDRNOTAVAIL: Failed to open TCP connection to localhost:9200 (Cannot assign requested address - connect(2) for "localhost" port 9200)

Ты хоть представляешь, чего нам не хватает?

1 ответ

Решение

Итак, мы нашли решение:

В wercker.yml

services:
  - id: elasticsearch:6.5.1
    cmd: "/elasticsearch/bin/elasticsearch -Ediscovery.type=single-node"

И мы добавили шаг, чтобы проверить соединение:

build:
  steps:
    - script:
        name: Test elasticsearch connection
        code: curl http://elasticsearch:9200
Другие вопросы по тегам