GitLab CI: Часть 1, запуск раннеров (runners)
May 8, 2017 16:23 · 338 words · 2 minute read
В одной из предыдущих статей, посвященных 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-образы, которые будут использоваться при сборке нашего проекта.