GitLab CI,从docker dind连接到Elastic Search服务

时间:2019-03-09 19:53:38

标签: docker elasticsearch docker-compose gitlab gitlab-ci

我有在docker容器中运行的测试。为此,我使用docker-dind服务,即.gitlab-ci:

image: "docker:17"

variables:
  DOCKER_DRIVER: overlay2

services:
  - docker:dind
  - name: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
    alias: elasticsearch
    command: [ "bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node" ]

stages:
  - test

before_script:
  - apk --update add py2-pip python3 bash zip ansible openssh git docker-py curl
  - pip3 install docker-compose
  - docker info
  - docker-compose --version
    # Login to registry.gitlab.com
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com

test:
  script:
    - curl "http://elasticsearch:9200" # this works
    - docker-compose docker-compose.test.yml build --pull
    - docker-compose docker-compose.test.yml run app
  stage: test

我的测试为此使用ES,因此我添加了ES服务,但无法从运行测试的容器连接到ES群集。 当CI运行时,在装有跑步机的机器上我拥有:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                NAMES
f5d9a64bbe8e        1ee5a99eba5f        "gitlab-runner-build"    1 second ago        Up Less than a second                        runner-b7dcaf73-project-2199705-concurrent-1-predefined-0
c85c49d35946        ca27036dd5e7        "bin/elasticsearch -…"   16 seconds ago      Up 15 seconds           9200/tcp, 9300/tcp   runner-b7dcaf73-project-2199705-concurrent-1-docker.elastic.co__elasticsearch__elasticsearch-1
57472d0300ad        85e924caedbd        "dockerd-entrypoint.…"   17 seconds ago      Up 16 seconds           2375/tcp             runner-b7dcaf73-project-2199705-concurrent-1-docker-0

598c019aa28c-一个带有跑步者的容器,我可以进入此容器运行curl "http://elasticsearch:9200",它有效

57472d0300ad-垃圾容器,对吗?我可以进入该容器,但是curl "http://elasticsearch:9200"不起作用,docker ps显示:

/ # docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS               NAMES
252f0588a41d        backend_app            "make _inside_docker…"   6 seconds ago       Up 5 seconds        8080/tcp            backend_app_run_116d12907320
cd0ebb2f1d2d        postgres:9.6            "docker-entrypoint.s…"   7 seconds ago       Up 6 seconds        5432/tcp            backend_postgresql_1

如何将具有测试(252f0588a41d)的容器从ES连接到具有ES的容器? 谢谢。

0 个答案:

没有答案