在gitlab-ci中使用elasticsearch

时间:2017-04-12 14:52:49

标签: elasticsearch gitlab-ci

我尝试通过添加:

在gitlab -ci中使用elasticsearch服务
image: python:3.6
services:
  - elasticsearch:2.4

在我的.gitlab-ci.yml

不幸的是,它似乎无法工作(我无法在http://127.0.0.1:9200/拒绝连接)。有什么想法吗?

我还试图用:

启动docker镜像
test:
  script:
  - docker run -d elasticsearch

docker不存在......

3 个答案:

答案 0 :(得分:4)

对于 Elasticsearch 7,工作配置如下所示:

test-elasticsearch:
  stage: test
  services:
    - name: "docker.elastic.co/elasticsearch/elasticsearch:7.10.1"
      alias: "elasticsearch"
      command: [ "bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node" ]
  script:
    - curl "http://elasticsearch:9200/_cat/health"

但是,您还可以查看是否有可用于您的运行时的嵌入式弹性搜索,例如对于 Java,有“测试容器”:https://www.testcontainers.org/modules/elasticsearch/。这样一来,在本地为开发人员运行测试也更容易,因为他们无需先担心启动 elasticsearch。

答案 1 :(得分:3)

对于那些使用searchkick gem运行rails应用程序的人,请确保在gitlab.ci.yml文件中包含以下内容以及其他配置。如前面的评论者所述,需要更改主机名,并且ELASTICSEARCH_URL环境变量是您设置它的方式。

services:
  - elasticsearch:latest

variables:
  ELASTICSEARCH_URL "http://elasticsearch:9200"

如果您想使用官方的弹性搜索图像,您应该能够将上述内容更改为以下内容:

services:
  - name: docker.elastic.co/elasticsearch/elasticsearch:5.6.0
    alias: elasticsearch

variables:
  ELASTICSEARCH_URL "http://elasticsearch:9200"

答案 2 :(得分:0)

答案是使用“elasticsearch”主机名。 根据所使用的服务,请参阅此处了解主机名: https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#accessing-the-services 谢谢@jawad