Назад к вопросам
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]