Я тестировал gitlab-runner на виртуальной машине, он работал отлично. Я следовал этому руководству в части Использование исполнителя docker-in-docker:
https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
Когда я регистрирую бегуна с точно такой же конфигурацией на моем dev-сервере, бегун вызывается, когда есть коммит, но я получаю много ошибок:
*** WARNING: Service runner-XXX-project-XX-concurrent-X-docker-X probably didn't start properly.
ContainerStart: Error response from daemon: Cannot link to a non running container: /runner-XXX-project-XX-concurrent-X-docker-X AS /runner-XXX-project-XX-concurrent-X-docker-X-wait-for-service/service (executor_docker.go:1337:1s)
DEPRECATION: this GitLab server doesn't support refspecs, gitlab-runner 12.0 will no longer work with this version of GitLab
$ docker info
error during connect: Get http://docker:2375/v1.39/info: dial tcp: lookup docker on MY.DNS.IP:53: no such host
ERROR: Job failed: exit code 1
Я полагаю, что все эти ошибки связаны с первым предупреждением. Я пытался:
- Добавление второго DNS с IP-адресом 8.8.8.8 на мою машину, та же ошибка
- Добавить привилегированный = true вручную в /etc/gitlab-runner/config.toml, та же ошибка, так что это не связано с параметром privileged = true
- Замените tcp: // docker: 2375 на tcp: // localhost: 2375, не может найти демон docker на компьютере, когда информация о докере
Содержание gitlab-ci.yml:
image: docker:stable
stages :
- build
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
build-folder1:
stage: build
script:
- docker build -t image1 folder1/
- docker run --name docker1 -p 3001:5000 -d image1
only:
refs:
- dev
changes:
- folder1/**/*
build-folder2:
stage: build
script:
- docker build -t image2 folder2/
- docker run --name docker2 -p 3000:3000 -d image2
only:
refs:
- dev
changes:
- folder2/**/*
- Если папка1 ветки dev изменена, мы собираем и запускаем docker1
- Если папка 2 ветки dev изменена, мы собираем и запускаем docker2
версия докера на сервере разработки:
docker -v
Docker version 17.03.0-ce, build 3a232c8
версия gitlab-runner на сервере разработки:
gitlab-runner -v
Version: 11.10.1