GitLab CI, подключайтесь из docker dind к сервису Elastic Search - PullRequest
1 голос
/ 09 марта 2019

У меня есть тесты, которые запускаются в док-контейнере.Для этого я использую сервис 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 - dindконтейнер, верно?Я могу войти в этот контейнер, но 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?Спасибо.

...