Gitlab运行器docker无法解析主机 [英] Gitlab runner docker Could not resolve host
问题描述
我在Ubuntu操作系统上使用2个容器:Gitlab-ce和gitlab-runner
Im using 2 containers on my Ubuntu OS: Gitlab-ce and gitlab-runner
容器名称为: gitlab_gitlab_1
和 gitlab_gitlab-runner_1
我通过 gitlab.localhost.com:801 $ c访问我的gitlab应用程序$ c>
我使用以下命令成功注册了跑步者:
I register successfully a runner with this command:
docker exec -it gitlab_gitlab-runner_1 gitlab-runner register --non-interactive --url http://gitlab_gitlab_1 --registration-token _wgMgEx3nBocYQtoi83c --executor docker --docker-image alpine:latest
然后,当我开始工作时,出现以下错误消息:
Then, when I start the job, I got this error message:
Running with gitlab-runner 10.7.1 (b9bba623)
on 589a617ee407 12ba77f7
Using Docker executor with image alpine:latest ...
Pulling docker image alpine:latest ...
Using docker image sha256:3fd9065eaf02feaf94d68376da52541925650b81698c53c6824d92ff63f98353 for alpine:latest ...
Running on runner-12ba77f7-project-1-concurrent-0 via 01196621a827...
Cloning repository...
Cloning into '/builds/root/test'...
fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.localhost.com/root/test.git/': Could not resolve host: gitlab.localhost.com
ERROR: Job failed: exit code 1
在两个容器中,我都可以访问主机名 gitlab.localhost.com
。
我认为问题来自无法解析主机的高山图像。
In both containers, I can access to the hostname gitlab.localhost.com
.
I think the issue comes from the image alpine which can not resolve the host.
我该如何解决?
谢谢
编辑1
docker-compose.yml
docker-compose.yml
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.localhost.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.localhost.com'
ports:
- '801:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks:
- 'default'
gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
depends_on:
- 'gitlab'
restart: always
volumes:
- '/srv/gitlab-runner/config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- 'default'
links:
- 'gitlab:gitlab.localhost.com'
networks:
default:
driver: 'bridge'
编辑2
docker-compose.yml
docker-compose.yml
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.localhost.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.localhost.com'
ports:
- '801:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks:
default:
aliases:
- 'gitlab.localhost.com'
gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
depends_on:
- 'gitlab'
restart: always
volumes:
- '/srv/gitlab-runner/config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- 'default'
networks:
default:
driver: 'bridge'
推荐答案
感谢Tarun Lalwan链接,根据Joyce Babu的帖子,有一个 [runners.docker]部分$中的advanced-configuration.md#the-runnersdocker-section rel = noreferrer>未记录的选项 c $ c>
Thanks to Tarun Lalwan link and according to Joyce Babu post, there are an undocumented option from the gitlab runner repos in the
[runners.docker] section
network_mode : Add container to a custom network
所以我必须在 config.toml
like
So I have to set this option with my network name in the config.toml
like
[[runners]]
...
[runners.docker]
...
network_mode = "gitlab_default"
或从命令行创建运行器时
OR when create the runner from command line
docker exec -it gitlab_gitlab-runner_1 gitlab-runner register \
--non-interactive \
--url http://gitlab_gitlab_1 \
--registration-token _wgMgEx3nBocYQtoi83c \
--executor docker \
--docker-image alpine:latest \
--docker-network-mode gitlab_default
这篇关于Gitlab运行器docker无法解析主机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!