gitlan ce online, gitlab-ci.yml, docker dind, не может получить доступ к контейнеру с помощью открытого порта (curl: соединение отклонено) - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь использовать конвейер для проверки моего кода nodejs.Идея состоит в том, чтобы использовать контейнер, уже использовавшийся в помещении, то есть SonarQube с моей личной конфигурацией, переданный в образ и отправленный в частное хранилище на GitLab.

В любом случае, кажется, я могу его использоватьи запустить с помощью docker: dind, но что-то идет не так, когда приходит время использовать сервисы, включенные в контейнер.Я не могу получить доступ к конечной точке http://IP:9000, даже если с помощью docker ps кажется правильно привязанным, открывающим порт.

Чего мне не хватает?Может ли это быть использование общего бегуна?

Спасибо, Лоренцо

Здесь работа в моем gitlab-ci.yml

sec_dev_static:
  stage: sec_dev_static
  image: gitlab/dind:latest
  variables:
    DOCKER_DRIVER: overlay
  services:
    - docker:dind
  before_script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
    - docker run -d --name sonarqube -p 9000:9000 registry.gitlab.com/<my sonarqube custom image>
    - docker inspect sonarqube | grep "IPAddress"
    - docker ps -a
    - sleep 20  ==> I added this sleep (if it has any sense, because sonarqube takes time to start)
  script:
    - echo "Quality check"
    - "ping -c 4 localhost"
    - "curl -X GET http://127.0.0.1:9000" ==> only to test if it is up and running...

Это журнал

Status: Downloaded newer image for registry.gitlab.com/<my sonarqube custom image>

$ docker inspect sonarqube | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.18.0.2",
                    "IPAddress": "172.18.0.2",
$ docker ps -a
CONTAINER ID        IMAGE                                                                   COMMAND             CREATED                  STATUS                  PORTS        
aaaaaaaaaaaa        registry.gitlab.com/<my sonarqube custom image>   "./bin/run.sh"      Less than a second ago   Up Less than a second   0.0.0.0:9000->9000/tcp, 9092/tcp
$ sleep 20
$ echo "Quality check"
Quality check

$ ping -c 4 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.040 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.032 ms

--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3064ms
rtt min/avg/max/mdev = 0.032/0.040/0.047/0.009 ms
$ curl -X GET http://127.0.0.1:9000
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (52) Empty reply from server
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
/usr/local/bin/wrapdocker: line 113:    52 Killed                  docker daemon $DOCKER_DAEMON_ARGS &> /var/log/docker.log
Timed out trying to connect to internal docker host.
ERROR: Job failed: exit code 1

В конце концов, кажется, что контейнер недоступен / не пригоден для повторного использования / не готов.

...