DinD gitlab-runner: служба предупреждений runner-xxx-project-xx-concurrent-x-docker-x, вероятно, не запустилась должным образом - PullRequest
0 голосов
/ 06 мая 2019

Я тестировал 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

1 Ответ

1 голос
/ 28 июня 2019

Я постараюсь дать вам ответ, так как я прихожу, чтобы решить эту проблему при попытке запустить DinD.

Это сообщение:

*** ПРЕДУПРЕЖДЕНИЕ:Service runner-XXX-project-XX-concurrent-X-docker-X, вероятно, не запустился должным образом.

Означает, что либо вы неправильно сконфигурировали своего бегуна, либо он не связанgitlab-ci.yml файл.Вы должны иметь возможность проверить идентификатор бегуна, используемый на странице журнала в Gitlab.

Для начала убедитесь, что вы ввели правильную команду gitlab-runner register , с правильнымрегистрационный токен.

Во-вторых, поскольку вы устанавливаете определенного бегуна вручную, убедитесь, что вы установили для него какой-то уникальный тег (например, build_docker ), и вызовите его с вашего gitlab-ci.ymlфайл.Например:

...
build-folder1:
   stage: build
   script:
    - docker build -t image1 folder1/
    - docker run --name docker1 -p 3001:5000 -d image1
   tags:
    - build_docker
...

Так должно работать.

...