Назад к вопросам
Middle
99
questionbank
Как работает GitLab Runner?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
GitLab Runner — это агент, который запускает CI/CD задачи. Он обменивается данными с GitLab CI/CD посредством API. Когда в GitLab происходит событие, запускающее пайплайн (например, коммит), GitLab отправляет запрос раннеру. Раннер забирает задачу, клонирует репозиторий, выполняет команды, описанные в .gitlab-ci.yml, и отправляет результат обратно в GitLab.
Ключевые аспекты работы:
- Типы раннеров: Shared, Specific, Group. Различаются областью видимости и доступностью для проектов.
- Executor (Исполнитель): Определяет среду, в которой будут выполняться задачи. Популярные исполнители:
shell,docker,kubernetes,virtualbox,ssh. Выбор исполнителя влияет на изоляцию и окружение выполнения задач. - Регистрация: Раннер регистрируется в GitLab с использованием токена, связывая его с конкретным инстансом, группой или проектом.
- Опрос (Polling): Раннер периодически опрашивает GitLab на наличие новых задач.
config.toml: Конфигурационный файл, определяющий настройки раннера, включая тип исполнителя, количество параллельных задач и другие параметры.
Пример структуры config.toml:
# глобальные настройки
concurrent = 4
# настройки раннера
[[runners]]
name = "my-docker-runner"
url = "https://gitlab.com/"
token = "YOUR_RUNNER_TOKEN"
executor = "docker" # выбор исполнителя
[runners.docker]
tls_verify = false
image = "ubuntu:latest" # образ при использовании docker исполнителя
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]