I am trying ta
I am trying to get a docker in docker configuration for my gitlab instance running but I just can’t get it working.
Here is what I want to do:
- Start a „docker in docker“ image
- Start a gitlab runner in another docker image
- Use docker in docker from gitlab CI.
All of that is running under Ubuntu 18.04. Here are the commands
Create a Network
sudo docker network create gitlab-runner-net
To start docker in docker:
sudo docker run --privileged --name gitlab-dind -d \
--network gitlab-runner-net --network-alias gitlab-runner-net \
-e DOCKER_TLS_CERTDIR=/certs \
-v docker-certs-ca:/certs/ca \
-v docker-certs-client:/certs/client \
-v /var/lib/docker \
docker:19.03.13-dind --storage-driver=overlay2
And the for the runner
sudo docker run -d --name gitlab-runner --restart always --network gitlab-runner-net -v /srv/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml -e DOCKER_TLS_CERTDIR=/certs -v docker-certs-client:/certs/client:ro -e DOCKER_HOST=tcp://gitlab-dind:2376 gitlab/gitlab-runner:alpine
And here is the config.toml
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "gitlab-did"
url = „cleaned“
token = „cleaned
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
host = "tcp://gitlab-dind:2376"
tls_verify = false
image = "docker:19.03.13"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/certs"]
shm_size = 0
The containers spin up fine and the gitlab runner registers. But then I use the following .gitlab-ci.yml
image: docker:19.03.12 services:
- docker:19.03.12-dind
before_script:
- docker info
build: stage: build script: - docker build -t my-docker-image . - docker run my-docker-image /script/to/run/tests
And the result is
> Running with gitlab-runner 13.4.1 (e95f89a0) on gitlab-did FPGoD8Ms
> Preparing the "docker" executor 00:09 ERROR: Failed to remove network
> for build ERROR: Preparation failed: Error response from daemon:
> Client sent an HTTP request to an HTTPS server. (docker.go:985:0s)
> Will be retried in 3s ... ERROR: Failed to remove network for build
> ERROR: Preparation failed: Error response from daemon: Client sent an
> HTTP request to an HTTPS server. (docker.go:985:0s) Will be retried in
> 3s ... ERROR: Failed to remove network for build ERROR: Preparation
> failed: Error response from daemon: Client sent an HTTP request to an
> HTTPS server. (docker.go:985:0s) Will be retried in 3s ... ERROR: Job
> failed (system failure): Error response from daemon: Client sent an
> HTTP request to an HTTPS server. (docker.go:985:0s)
I am trying to fix this for days now. I played around with so many settings that I just lost overview.
Does anybody please have a suggestion?