Connect CI Runner to Docker network
I have the following configuration:
dockered gitlab (named gitlab) dockered gitlab-ci-multirunner (linked to gitlab and named gitlab-runners).
┌──────────────────────┐ ┌─────────┐ │ 172.12.x.x │ │172.13.x.│ ┌┴──────────┬┬──────────┴┐┌┴─────────┴┐ │ GitLab ││ GitLab ││ GitLab │ │ ││ Runners ││ Runners │ │ ││ ││ │ └───────────┘└───────────┘└───────────┘ │ │ │ ▲ │ │ │ ╱ │ │ │ ╱ │ │ ▼ ╱ ───────┴────────────┴────────────────────
I successfully registered a runner into gitlab, but when I try to run a build I cannot manage to connect the docker container of the project spawned by the gitlab-runners to my gitlab docker; therefore when the project docker tries to clone the project, the runner is not able to resolve the name http://gitlab/ I tried to use the parameter -links=["network-name:gitlab"] in the toml file of my runner, but this leads to:
API error (500) Could not get container for <network name>.
I also tried to use the extra_hosts parameter and to write the IP address of my gitlab container (this is a solution that I have found in two issues on this repo). Unfortunately, since the two containers are not in the same network this leads to a time out.
Steps to reproduce
Here is my docker compose: version: '2'
services: gitlab: container_name: 'gitlab' image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab' ports: - '80:80' - '443:443' - '2222:22' expose: - 80 - 443 - 2222 volumes: - '/docker/gitlab/conf:/etc/gitlab' - '/docker/gitlab/logs:/var/log/gitlab' - '/docker/gitlab/data:/var/opt/gitlab' networks: - mynet gitlab-runners: container_name: 'gitlab-runners' image: 'gitlab/gitlab-runner:latest' restart: always volumes: - '/srv/gitlab-runnes:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock' privileged: false networks: - mynet gitlab-runners-data: external: true networks: mynet: external: true
- mynet is a simple bridge network I created.
- multi runner has been setup so that there is a specific runner for a project that runs in docker mode.
The containers generated by the multi-runner are in a different logical network, therefore the \gitlab name or its IP address are either not resolvable nor reachable.
I should be able to connect the containers created by the multi-runner in the same docker network of my gitlab instance.
- custom installation on Centos 7
- docker 1.12.2
- kernel 3-10.0-327.el7.x86_64
Used GitLab Runner version