2015-12-09 13 views
9

Gitlab è installato su una rete interna a http://gitlabCome posso ottenere un corridore CI Gitlab Docker per accedere a Git sul suo host genitore?

contenitori finestra mobile sulla stessa macchina non può collegarsi ad esso.

Come configurare la finestra mobile in modo che sappia che gitlab è suo padre?


Il problema si presenta quando Gitlab CI tenta di eseguire una build (all'interno di un contenitore Docker):

Clonazione in '/ build/ns/progetto' ... fatale: incapace di accesso 'http://gitlab-ci-token:[email protected]/ns/project.git/': Impossibile determinazione host 'gitlab'

ho provato ad aggiungere i server DNS della rete per DOCKER_OPTS in /etc/default/docker inutilmente.

risposta

12

In base allo GitLab CI Runner Advanced configuration, è possibile provare a giocare con il parametro extra_hosts nel corridore CI GitLab. In /etc/gitlab-runner/config.toml:

[[runners]] 
    url = "http://gitlab/ci" 
    token = "TOKEN" 
    name = "my_runner" 
    executor = "docker" 
    [runners.docker] 
    host = "tcp://<DOCKER_DAEMON_IP>:2375" 
    image = "..." 
    ... 
    extra_hosts = ["gitlab:192.168.0.39"] 

Con questo esempio, quando all'interno del contenitore che esegue il test di git cercherà di clonare da gitlab, si utilizzerà il 192.168.0.39 come IP di questo nome host.

0

Nel caso in cui l'installazione Gitlab gestisce anche come contenitore Docker, basta collegare il vostro gitlab-runner al contenitore gitlab dovrebbe funzionare:

docker run -d --name gitlab-runner --restart always --link gitlab \ 
-v /var/run/docker.sock:/var/run/docker.sock \ 
-v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest 

In questo modo Docker si prende cura di rendere il 'gitlab' ospite disponibile all'interno gitlab-runner.

Problemi correlati