我尝试通过添加:
在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
不存在......
答案 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