在Werker中启动ElasticSearch



我们有一个Ruby项目,我们使用Werker作为持续集成。

我们需要启动一个弹性搜索服务来运行一些集成测试。

在本地,我们将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"

在Werker.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)

你知道我们缺少什么吗?

因此,我们找到了一个解决方案:

在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

最新更新