호스팅된 Linux 러너

Tier: Free, Premium, Ultimate Offering: GitLab.com

GitLab.com의 호스팅된 Linux 러너는 Google Cloud Compute Engine에서 실행됩니다. 각 작업은 완전히 격리되고 일회성 가상 머신(VM)을 받습니다. 기본 지역은 us-east1입니다.

각 VM은 Google Container-Optimized OS (COS) 및 docker+machine executor를 실행하는 최신 버전의 Docker Engine을 사용합니다. 머신 유형 및 기본 프로세서 유형이 변경될 수 있습니다. 특정 프로세서 디자인에 최적화된 작업은 일관성 없이 작동할 수 있습니다.

태그되지 않은 작업은 small Linux x86-64 러너에서 실행됩니다.

Linux - x86-64용 사용 가능한 기계 유형

GitLab은 Linux x86-64용 호스팅된 러너에 다음과 같은 기계 유형을 제공합니다.

러너 태그 vCPU 메모리 스토리지
saas-linux-small-amd64 (기본) 2 8 GB 30 GB
saas-linux-medium-amd64 4 16 GB 50 GB
saas-linux-large-amd64 (Premium 및 Ultimate 전용) 8 32 GB 100 GB
saas-linux-xlarge-amd64 (Premium 및 Ultimate 전용) 16 64 GB 200 GB
saas-linux-2xlarge-amd64 (Premium 및 Ultimate 전용) 32 128 GB 200 GB

Linux - Arm64용 사용 가능한 기계 유형

GitLab은 Linux Arm64용 호스팅된 러너에 다음과 같은 기계 유형을 제공합니다.

러너 태그 vCPU 메모리 스토리지
saas-linux-medium-arm64 (Premium 및 Ultimate 전용) 4 16 GB 50 GB
saas-linux-large-arm64 (Premium 및 Ultimate 전용) 8 32 GB 100 GB

컨테이너 이미지

Linux 러너는 docker+machine executor를 사용하므로 .gitlab-ci.yml 파일에서 image를 정의하여 원하는 컨테이너 이미지를 선택할 수 있습니다. 선택한 Docker 이미지가 기본 프로세서 아키텍처와 호환되는지 주의해야 합니다.

이미지를 설정하지 않은 경우 기본값은 ruby:3.1입니다.

도커 인 도커 지원

러너는 privileged 모드로 구성되어 있어 Docker in Docker를 지원하여 도커 이미지를 네이티브로 빌드하거나 격리된 작업 내에서 여러 컨테이너를 실행할 수 있습니다.

예시 .gitlab-ci.yml 파일

small 이외의 머신 유형을 사용하려면 작업에 tags: 키워드를 추가하면 됩니다. 예:

job_small:
  script:
    - echo "이 작업은 태그되지 않았으며 기본 small Linux x86-64 인스턴스에서 실행됩니다."

job_medium:
  tags:
    - saas-linux-medium-amd64
  script:
    - echo "이 작업은 중간 Linux x86-64 인스턴스에서 실행됩니다."

job_large:
  tags:
    - saas-linux-large-arm64
  script:
    - echo "이 작업은 대형 Linux Arm64 인스턴스에서 실행됩니다."