在 Wercker 中启动 ElasticSearch
Start ElasticSearch in 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)
你知道我们缺少什么吗?
所以,我们找到了解决方案:
在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
我们有一个 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)
你知道我们缺少什么吗?
所以,我们找到了解决方案:
在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