Я пытаюсь использовать конвейер для проверки моего кода 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
В конце концов, кажется, что контейнер недоступен / не пригоден для повторного использования / не готов.