Отладка внутри локального контейнера Gitlab Runner - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь заставить некоторые Rails-тесты работать с Gitlab CI Runner, выполняя его локально следующим образом:

gitlab-runner exec docker rspec

В тестах используется Chrome без головы для рендеринга изображения вкаталог где-то в контейнере.Мне нужно проверить это изображение, чтобы сравнить его с ожидаемым результатом.

Локальные стратегии отладки, такие как puts и byebug, не работают.Какие у меня варианты?

1 Ответ

0 голосов
/ 08 июня 2018

Продолжение комментариев : Вы можете зарегистрировать участника с сопоставлением тома на диске хоста, например:

config.toml

concurrent = 6
check_interval = 0

[[runners]]
  name = "runner name"
  url = "******"
  token = "******"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:17.06.0-ce"
    privileged = false
    disable_cache = false
    volumes = ["/srv/gitlab-runner/images:/usr/src/app/image-dir", "/cache"]
    shm_size = 0
  [runners.cache]

Обратите внимание на ключевое слово volumes выше.

На случай, если вам понадобится рука с запущенным gitlab-runner с докеризацией * с указанным этим томом :

  1. Настройка отдельной сети для бегуна:

    $ docker network create gitlab-runner-net
    
  2. Запустить основной контейнер докера GitLab-runner:

    $ sudo docker run -d \
    --name gitlab-runner \
    --privileged \
    --restart always \
    --network gitlab-runner-net \
    -v /srv/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /srv/gitlab-runner/images:/usr/src/app/image-dir
    -e DOCKER_HOST=unix:///var/run/docker.sock \
    gitlab/gitlab-runner:alpine
    
  3. Зарегистрировать участника в GitLab:

    $ docker run -it --rm \
    -v /srv/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml \
    gitlab/gitlab-runner:alpine \
      register \
      --executor docker \
      --docker-image docker:17.06.0-ce \
      --docker-volumes /var/run/docker.sock:/var/run/docker.sock
      --docker-volumes /srv/gitlab-runner/images:/usr/src/app/image-dir
    

И измените config.toml бегуна с указанным выше отображением объема.

Примечание

Приведенная выше конфигурация не является однозначнойтолько это просто контрольная точка, показывающая, как сопоставить тома и в целом, как настроить работающий dind runner, поскольку у gitlab недавно возникли некоторые проблемы с настройкой частных бегунов.

...