Executors

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed

GitLab Runner은 다양한 환경에서 빌드를 실행하는 데 사용할 수있는 여러 실행기(executors)를 구현합니다.

어떤 실행기를 선택할지 확신이 없다면, 실행기 선택을 참조하세요.

각 실행기에서 지원하는 기능에 대한 자세한 정보는 호환성 차트를 참조하세요.

GitLab Runner은 다음 실행기를 제공합니다:

실행기 선택

각 실행기는 프로젝트를 빌드하는 다른 플랫폼과 기법을 지원합니다. 아래 표는 각 실행기의 주요 사항을 보여주어 어떤 실행기를 사용할지 결정하는 데 도움이 됩니다.

실행기 SSH Shell VirtualBox Parallels Docker Kubernetes Custom
모든 빌드에 대한 깨끗한 환경 조건부 (4)
이전 클론 재사용 조건부 (4)
러너(runner) 파일 시스템 액세스 보호(5) 조건부
러너(runner) 머신 마이그레이션 부분적 부분적
병렬 빌드 지원 ✗ (1) 조건부 (4)
복잡한 빌드 환경 ✗ (2) ✓ (3) ✓ (3)
빌드 문제 디버깅 쉬움 쉬움 어려움 어려움 중간 중간 중간
  1. 빌드가 빌드 머신에 설치된 서비스를 사용하는 경우에는 가능하지만 대부분의 경우 문제가 발생합니다.
  2. 매뉴얼 의존성 설치가 필요합니다.
  3. Vagrant를 사용하는 경우를 예로들면.
  4. 프로비저닝하는 환경 종류에 따라 달라집니다. 완전히 격리되거나 각 빌드 사이에 공유될 수 있습니다.
  5. 러너(runner)의 파일 시스템 액세스가 보호되지 않을 때에는 작업이 러너(runner)의 토큰과 다른 작업의 캐시 및 코드를 포함한 전체 시스템에 액세스 할 수 있습니다. ✓로 표시된 실행기는 기본적으로 러너(runner)가 파일 시스템에 액세스 할 수 없게 합니다. 그러나 보안 결함이나 특정 구성을 통해 작업이 컨테이너를 벗어나 파일 시스템에 액세스 할 수 있습니다.

Shell 실행기

Shell은 구성하기 가장 간단한 실행기입니다. 빌드에 필요한 모든 의존성은 GitLab Runner가 설치된 동일한 머신에 매뉴얼으로 설치해야 합니다.

가상 머신 실행기 (VirtualBox / Parallels)

이 실행기를 사용하여 미리 만든 가상 머신을 사용하여 빌드를 실행할 수 있습니다. GitLab Runner는 VirtualBoxParallels를 사용하여 Windows, Linux, macOS 또는 FreeBSD 운영 체제에서 빌드를 실행할 수있는 두 가지 완전한 시스템 가상화 옵션을 제공합니다. GitLab Runner는 가상 머신에 연결하고 그 위에서 빌드를 실행합니다. 가상 머신 실행기는 인프라 비용을 줄이기 위해 사용할 수도 있습니다.

Docker 실행기

Docker를 사용하여 깨끗한 빌드 환경을 구성할 수 있습니다. 프로젝트를 빌드하는 데 필요한 모든 의존성을 Docker 이미지에 넣을 수 있으므로 의존성 관리가 더 간단해집니다. 도커 실행기를 사용하여 MySQL과 같은 서비스에 의존성을 가진 빌드 환경을 만들 수 있습니다.

Docker Machine 실행기

Docker Machine은 자동 스케일링을 지원하는 Docker 실행기의 특별한 버전입니다. 일반적인 Docker 실행기와 유사하게 작동하지만 _Docker Machine_에 의해 필요에 따라 생성된 빌드 호스트를 사용합니다.

Kubernetes 실행기

Kubernetes 실행기를 사용하여 기존 Kubernetes 클러스터를 빌드에 사용할 수 있습니다. 실행기는 Kubernetes 클러스터 API를 호출하고 각 GitLab CI 작업에 대해 새 Pod(빌드 컨테이너 및 서비스 컨테이너)를 생성합니다.

SSH 실행기

SSH 실행기는 완성을 위해 추가되었지만 가장 지원되는 실행기입니다. SSH 실행기를 사용하면 GitLab Runner가 외부 서버에 연결하여 빌드를 실행합니다. 사용 기관의 성공 사례가 있습니다만, 일반적으로 다른 유형을 사용하는 것을 권장합니다.

사용자 정의 실행기

사용자 정의 실행기를 사용하여 고유한 실행 환경을 지정할 수 있습니다. 예를 들어 LXC 컨테이너와 같이 GitLab Runner에서 제공하는 실행기가 없는 경우, 사용자는 원하는 환경을 프로비저닝하고 정리하기 위해 자신의 실행 파일을 GitLab Runner에 제공할 수 있습니다.

호환성 차트

다양한 실행기에서 지원하는 기능:

실행기 SSH Shell VirtualBox Parallels Docker Kubernetes Custom
안전한 변수
.gitlab-ci.yml: 이미지 ✓ (1) ✓ (1) ✓ ($CUSTOM_ENV_CI_JOB_IMAGE를 통해)
.gitlab-ci.yml: 서비스
.gitlab-ci.yml: 캐시
.gitlab-ci.yml: 아티팩트
단계간 아티팩트 전달
GitLab Container Registry 비공개 이미지 사용 n/a n/a n/a n/a n/a
대화형 웹 터미널 ✓ (UNIX)
  1. GitLab Runner 14.2에서 지원이 추가되었습니다. 자세한 내용은 기본 VM 이미지 재정의 섹션을 참조하세요.

다양한 셸에 지원되는 시스템:

Bash PowerShell 데스크탑 PowerShell Core Windows Batch (폐기됨)
Windows ✗ (4) ✓ (3) ✓ (2)
Linux ✓ (1)
macOS ✓ (1)
FreeBSD ✓ (1)
  1. 기본 셸.
  2. 폐기됨. 지정된 shell이 없을 경우 기본 셸.
  3. 새 러너가 등록될 때 기본 셸.
  4. Windows에서의 Bash 셸은 지원되지 않습니다.

다양한 셸에 대한 대화형 웹 터미널에서 지원되는 시스템:

Bash PowerShell 데스크탑 PowerShell Core Windows Batch (폐기됨)
Windows
Linux
macOS
FreeBSD