위키득계정 ↗
기술

Dagger 빌드

Dagger 빌드기술
주요 역할
소프트웨어 전달 자동화
실행 기반
Linux 컨테이너 런타임
정의 방식
언어별 SDK와 모듈
관측 정보
OpenTelemetry 추적
Dagger는 빌드와 테스트, 소프트웨어 전달 과정을 코드로 구성하는 플랫폼이다. 컨테이너와 파일, 저장소 등을 타입이 있는 API로 조합하고 로컬 개발 환경과 CI에서 같은 작업 정의를 활용한다.

작업을 코드로 구성하기

언어별 SDK로 컨테이너와 파일 시스템, Git 저장소 등의 작업을 연결한다. 공통 기능은 모듈로 재사용하고 타입을 갖는 산출물을 함수 사이에 전달한다. 정적인 명령 목록만 두는 대신 프로그래밍 언어의 구조를 사용해 전달 과정을 표현한다.

입력에 따른 실행과 캐시

도구를 컨테이너에서 실행하고 호스트에서 필요한 의존성을 명시한다. 연산의 입력을 기준으로 결과를 캐시해 영향을 받는 부분을 다시 수행하는 증분 실행을 사용한다. 로컬이나 CI에서 실행할 수 있지만 실제 작업의 권한과 외부 서비스 연결은 각각의 실행 환경에서 준비해야 한다.

실행 결과를 추적하기

작업마다 OpenTelemetry 스팬과 로그, 지표를 생성한다. 명령행의 화면이나 웹 화면에서 흐름을 살피고 호환되는 관측 시스템으로 추적 정보를 내보낼 수 있다. 실행 결과뿐 아니라 어떤 단계에서 시간이 걸리거나 실패했는지 확인하는 데 활용한다.

관련 문서

Earthly / Mage / Task 작업 실행기 / OpenTelemetry / 컨테이너 / 지속적 통합