Sobes.tech
Middle

Jak działa GitLab Runner?

sobes.tech AI

Odpowiedź od AI

GitLab Runner to agent, który uruchamia zadania CI/CD. Wymienia dane z GitLab CI/CD za pomocą API. Gdy w GitLab zdarzy się wydarzenie uruchamiające pipeline (np. commit), GitLab wysyła żądanie do runnera. Runner pobiera zadanie, klonuje repozytorium, wykonuje polecenia opisane w .gitlab-ci.yml i wysyła wynik z powrotem do GitLab.

Kluczowe aspekty działania:

  • Typy runnerów: Shared, Specific, Group. Różnią się zakresem widoczności i dostępnością dla projektów.
  • Executor (Wykonawca): Określa środowisko, w którym będą wykonywane zadania. Popularne wykonawcy: shell, docker, kubernetes, virtualbox, ssh. Wybór wykonawcy wpływa na izolację i środowisko wykonania.
  • Rejestracja: Runner rejestruje się w GitLab za pomocą tokena, łącząc go z konkretną instancją, grupą lub projektem.
  • Polling (zapytanie): Runner okresowo pyta GitLab o nowe zadania.
  • config.toml: Plik konfiguracyjny określający ustawienia runnera, w tym typ wykonawcy, liczbę równoległych zadań i inne parametry.

Przykład struktury config.toml:

# ustawienia globalne
concurrent = 4

# ustawienia runnera
[[runners]]
  name = "my-docker-runner"
  url = "https://gitlab.com/"
  token = "YOUR_RUNNER_TOKEN"
  executor = "docker" # wybór wykonawcy
  [runners.docker]
    tls_verify = false
    image = "ubuntu:latest" # obraz przy użyciu wykonawcy 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]