GitLab-CI: невозможно связать с не работающим контейнером

Я пытался настроить мою работу с gitlab-ci. У меня есть простой файл gitlab-ci.yml

build_ubuntu:
  image: ubuntu:14.04
  services:
    - rikorose/gcc-cmake:gcc-5
  stage: build
  script:
    - apt-get update
    - apt-get install -y python3 build-essential curl
    - cmake --version
  tags:
    - linux

Я хочу получить Ubuntu 14.04 LTS с установленными gcc и cmake (версия apt-get является старой). Если я использую его локально (с помощью команды docker --link), все работает, но когда gitlab-ci-runner будет обрабатывать его, я получаю следующее предупреждение (что в моем случае является ошибкой)

Running with gitlab-ci-multi-runner 9.2.0 (adfc387)
on xubuntuci1 (19c6d3ce)
Using Docker executor with image ubuntu:14.04 ...
Starting service rikorose/gcc-cmake:gcc-5 ...
Pulling docker image rikorose/gcc-cmake:gcc-5 ...
Using docker image rikorose/gcc-cmake:gcc-5 
ID=sha256:ef2ac00b36e638897a2046c954e89ea953cfd5c257bf60103e32880e88299608 
for rikorose/gcc-cmake service...
Waiting for services to be up and running...

*** WARNING: Service runner-19c6d3ce-project-54-concurrent-0-rikorose__gcc-
cmake probably didn't start properly.

Error response from daemon: Cannot link to a non running container: /runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake AS /runner-19c6d3ce-
project-54-concurrent-0-rikorose__gcc-cmake-wait-for-service/runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake

Кто-нибудь знает, как я могу это исправить?

Заранее спасибо Тонка

3 ответа

Вы должны запустить контейнер gitlab-runner с

--privileged true

Но этого недостаточно. Любые контейнеры бегунов, которые запускаются gitlab после регистрации, также должны быть привилегированными. Так что вам нужно смонтировать gitlab-бегун

docker exec -it runner /bin/bash
nano /etc/gitlab-runner/config.toml

и измените привилегированный флаг с ложного на истинный:

privileged = true

Это решит проблему!

В моем случае мне пришлось добавить

      variables:
  DOCKER_TLS_CERTDIR: ""

Хотя моя конфигурация CI отличается и служит другой цели, я столкнулся с аналогичной проблемой, которая в основном приводит к тому же сообщению об ошибке, относящемуся к попытке связать какой-то неработающий контейнер.

Соответствующий бегун работаетprivilegedгодами. Однако услуга, используемая в конкретном проекте.gitlab-ci.ymlфайл был довольно устаревшим. Оно включало в себя следующее определение:

        services:
    - docker:18.09-dind

Docker на хосте уже имел версию v23.x, поэтому соответствующее изменение этого определения исправило это для меня:

        services:
    - docker:23-dind
Другие вопросы по тегам