dial tcp: lookup docker on x.x.x.x:53: no such host error runner inside docker on armhf
Summary
When running gitlab-runner inside docker on an armhf platform the following error is thrown when trying to run docker login:
error during connect: Post http://docker:2375/v1.39/auth: dial tcp: lookup docker on x.x.x.x:53: no such host
It is worth noting that I tried the same setup on a amd64 host with none of the same issues.
Steps to reproduce
- Use the following gitlab-runner docker container built from the following Dockerfile:
https://gitlab.com/chevpot/gitlab-ci-runner/blob/master/Dockerfile @ sha 962bdf636e63f52c89cada3e4688fe21ff24f2f9
- Run on a armhf device, in my case with docker-compose:
version: '3.4'
services:
gitlab-ci-runner:
image: gitlab-ci-runner:latest
container_name: gitlab-ci-runner
env_file:
- .env
volumes:
- gitdata:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8093:8093
restart: unless-stopped
volumes:
gitdata:
name: gitdata
driver: local
driver_opts:
type: none
o: bind
device: "${GITLAB_BASE}/config
Register runner against given project Run a ci pipeline using that runner
.gitlab-ci.yml
# Use the docker image as everything is run within docker containers
image: docker:18.09
services:
- docker:18.09-dind
variables:
API_IMAGE_PATH: registry.gitlab.com/chevpot/gitlab-ci-runner
DOCKERHUB_IMAGE_PATH: chevpot/gitlab-ci-runner
GITLAB_CI_RUNNER: $API_IMAGE_PATH/gitlab-ci-runner
# DOCKER_TLS_CERTDIR: "/certs"
# DOCKER_HOST: tcp://docker:2378
# DOCKER_DRIVER: overlay
.docker-build-gitlab-ci-runner-arm: &docker-build-gitlab-ci-runner-arm |
docker build \
--cache-from $GITLAB_CI_RUNNER:latest-armhf \
-f Dockerfile \
-t $GITLAB_CI_RUNNER:$CI_COMMIT_SHA-armhf \
-t $GITLAB_CI_RUNNER:latest-armhf \
-t $DOCKERHUB_IMAGE_PATH:latest-armhf \
.
.docker-build-gitlab-ci-runner: &docker-build-gitlab-ci-runner |
docker build \
--cache-from $GITLAB_CI_RUNNER:latest \
-f Dockerfile \
-t $GITLAB_CI_RUNNER:$CI_COMMIT_SHA \
-t $GITLAB_CI_RUNNER:latest \
-t $DOCKERHUB_IMAGE_PATH:latest \
.
stages:
- build
- version
build-gitlab-arm:
stage: build
tags:
- arm
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $GITLAB_CI_RUNNER:latest-armhf || true
- *docker-build-gitlab-ci-runner-arm
- docker push $GITLAB_CI_RUNNER:$CI_COMMIT_SHA-armhf
- docker push $GITLAB_CI_RUNNER:latest-armhf
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
- docker push $DOCKERHUB_IMAGE_PATH:latest-armhf
version-arm:
stage: version
tags:
- arm
script:
- docker pull $DOCKERHUB_IMAGE_PATH:latest-armhf
- GITLAB_CI_VERSION=`docker run -p 8093:8093 -v $PWD/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock $DOCKERHUB_IMAGE_PATH:latest-armhf --version | grep "^Version:" | cut -d ":" -f2 | tr -d '\040\011\012\015'`
- docker tag $DOCKERHUB_IMAGE_PATH:latest-armhf $DOCKERHUB_IMAGE_PATH:$GITLAB_CI_VERSION-armhf
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
- docker push $DOCKERHUB_IMAGE_PATH:$GITLAB_CI_VERSION-armhf
build-gitlab-x86:
stage: build
tags:
- docker
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $GITLAB_CI_RUNNER:latest || true
- *docker-build-gitlab-ci-runner
- docker push $GITLAB_CI_RUNNER:$CI_COMMIT_SHA
- docker push $GITLAB_CI_RUNNER:latest
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
- docker push $DOCKERHUB_IMAGE_PATH:latest
version-x86:
stage: version
tags:
- docker
script:
- docker pull $DOCKERHUB_IMAGE_PATH:latest
- GITLAB_CI_VERSION=`docker run -p 8093:8093 -v $PWD/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock $DOCKERHUB_IMAGE_PATH:latest --version | grep "^Version:" | cut -d ":" -f2 | tr -d '\040\011\012\015'`
- docker tag $DOCKERHUB_IMAGE_PATH:latest $DOCKERHUB_IMAGE_PATH:$GITLAB_CI_VERSION
- docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
- docker push $DOCKERHUB_IMAGE_PATH:$GITLAB_CI_VERSION
Actual behavior
The following error occurs when docker login is run: error during connect: Post http://docker:2375/v1.39/auth: dial tcp: lookup docker on x.x.x.x:53: no such host
Expected behavior
No error should be thrown
Relevant logs and/or screenshots
job log
Running with gitlab-runner 12.3.0 (a8a019e0)
on pi-runner fDQ-o9mB
Using Docker executor with image docker:18.09 ...
Starting service docker:18.09-dind ...
Pulling docker image docker:18.09-dind ...
Using docker image sha256:2442d824e7b5ebe83b2fc19bc8ad1da320f70a21b10b3d647dc019ea82b5f5f7 for docker:18.09-dind ...
Waiting for services to be up and running...
*** WARNING: Service runner-fDQ-o9mB-project-14130149-concurrent-0-docker-0 probably didn't start properly.
Health check error:
ContainerStart: Error response from daemon: Cannot link to a non running container: /runner-fDQ-o9mB-project-14130149-concurrent-0-docker-0 AS /runner-fDQ-o9mB-project-14130149-concurrent-0-docker-0-wait-for-service/service (executor_docker.go:1253:0s)
Service container logs:
*********
Pulling docker image docker:18.09 ...
Using docker image sha256:33a72f73198ad7c4d449f19bcbf6f474627cdec624426c234da9818aec75a438 for docker:18.09 ...
Running on runner-fDQ-o9mB-project-14130149-concurrent-0 via 07c031f191e9...
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/chevpot/gitlab-ci-runner/.git/
Created fresh repository.
From https://gitlab.com/chevpot/gitlab-ci-runner
* [new ref] refs/pipelines/89323614 -> refs/pipelines/89323614
* [new branch] master -> origin/master
Checking out 962bdf63 as master...
Skipping Git submodules setup
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
error during connect: Post http://docker:2375/v1.39/auth: dial tcp: lookup docker on 192.168.0.254:53: no such host
ERROR: Job failed: exit code 1
Environment description
The runner is being run within a custom docker container on an armhf host raspi v4, raspbian buster
config.toml contents
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "test-vm"
url = "https://gitlab.com/"
token = "FGvopuFEZCZBwHxTsa5V"
executor = "docker"
environment = ["DOCKER_TLS_CERTDIR="]
[runners.custom_build_dir]
[runners.docker]
tls_verify = false
image = "docker:stable-dind"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
Used GitLab Runner version
Version: 12.3.0
Git revision: a8a019e0
Git branch: 12-3-stable
GO version: go1.8.7
Built: 2019-09-20T08:09:48+0000
OS/Arch: linux/arm