我正在尝试使用管道来测试我的nodejs代码。 想法是使用一个已经在内部使用的容器,即具有我个人配置的SonarQube,进行镜像,然后推送到GitLab上的私人仓库中。
无论如何,似乎我可以使用它,并使用docker:dind运行,但是当需要使用容器中包含的服务时,出现了一些问题。 即使使用docker ps似乎已正确绑定暴露端口,我也无法访问http://IP:9000端点。
我想念什么?可以使用共享跑步者吗?
谢谢, 洛伦佐
这是我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
最后,容器似乎不可用/无法到达/尚未准备就绪。