GitLab CI: Часть 1, запуск раннеров (runners)

May 8, 2017 16:23 · 338 words · 2 minute read gitlab gitlab ci

В одной из предыдущих статей, посвященных GitLab — одной из самых популярных систем контроля версий и управления Git-репозиториями, — мы подготовили необходимый фундамент для настройки GitLab Continuous Integration (GitLab CI).

Эта статья начинает цикл публикаций, в которых мы подробно рассмотрим процесс настройки GitLab CI на реальном проекте. Давайте разберемся!

Для функционирования процесса Continuous Integration нам необходимо настроить еще один компонент — раннер (runner). Раннер в GitLab используется для запуска определенных задач (jobs, о них мы поговорим позже), их выполнения и отправки результатов обратно в GitLab.

В этой статье мы добавили docker-контейнер с раннером внутри в конфигурационный файл docker-compose.yml и запустили всю связку. Проверим состояние интересующего нас docker-контейнера:

docker ps gitlab-runner
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                      NAMES
e1470885895d        gitlab/gitlab-runner:latest   "/usr/bin/dumb-ini..."   2 weeks ago         Up 20 hours                                                    gitlab-runner 

Теперь нам необходимо зарегистрировать наш раннер, сделать это можно с помощью следующей команды:

docker exec -it gitlab-runner gitlab-runner register -n \
	--url http://git.labs.lc:10080/ci \
	--registration-token o_dsVxiqVssAPh3uxy46 \
	--executor docker \
	--description "docker-build-runner" \
	--builds-dir "/srv/my_build_directory" \
	--docker-image "ealebed/dc_ssh:latest" \
	--docker-dns 192.168.0.1 \
	--docker-privileged \
	--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
	--docker-volumes /srv/my_build_directory:/srv/my_build_directory \
	--docker-pull-policy "if-not-present"

Давайте подробнее остановимся на используемых параметрах:

  • --url — URL GitLab, к которому будет прикреплен раннер;
  • --registration-token — уникальный токен проекта, берется в настройках GitLab;
  • --executor — как (где) будет собираться проект. В нашем случае для сборки будут использоватся docker-образы;
  • --description — имя раннера (опционально);
  • --builds-dir — каталог для хранения результатов сборки проекта в контексте выбранного executor’а;
  • --docker-image — docker-образ, который будет использоваться при сборке (подробнее об этом в следующей статье);
  • --docker-dns — ДНС-сервер, который будет использоваться контейнером;
  • --docker-privileged — разрешаем запуск в привилегированном режиме;
  • --docker-volumes — указываем тома (volume), которые должны монтироваться из хост-системы в docker-контейнер;
  • --docker-pull-policy — политика скачивания docker-образов, использующихся при сборке проекта.

Больше информации о возможных типах раннеров и их специфических настройках доступно здесь.

Далее переходим в веб-интерфейс GitLab‘а, выбираем проект, для которого регистрировали раннер, жмем “Settings -> CI/CD Pipelines” и видим список всех раннеров.

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

tweet Share