프로젝트 소개

BuildKit은 Moby 프로젝트에서 개발한 빌드 툴킷으로, 소스 코드를 효율적이고 반복 가능하게 빌드 아티팩트로 변환합니다. 이는 `docker build`(Buildx를 통해)의 엔진이며, 독립 실행형 데몬(`buildkitd`)과 클라이언트 CLI(`buildctl`)를 제공합니다. 핵심 기능으로는 동시 의존성 해결, 자동 가비지 컬렉션이 포함된 명령어 수준 캐싱, 다양한 출력 형식(OCI 이미지, Docker tarball, 로컬 디렉터리, containerd 이미지 저장소) 지원이 있습니다. 빌드는 LLB(Low-Level Build)를 사용하여 정의되며, 이는 캐시 효율성과 동시 실행을 가능하게 하는 바이너리 중간 형식입니다. LLB는 벤더 중립적이어서 Dockerfile, Buildpacks, Earthfile(Earthly), Nix, HLB 등 다양한 고수준 프런트엔드가 이를 대상으로 할 수 있습니다. BuildKit은 데몬으로 실행되며 여러 워커 백엔드(OCI/runc 및 containerd)를 지원합니다. Linux 네이티브, Windows, 또는 Podman, Nerdctl, Kubernetes를 통한 컨테이너 내에서 배포할 수 있습니다. 데몬은 systemd 소켓 활성화, TCP 노출, OpenTelemetry 추적, 루트리스 실행을 지원합니다. 캐시는 인라인 이미지 메타데이터, 원격 레지스트리, 로컬 디렉터리 또는 GitHub Actions 캐시로 내보낼 수 있습니다. Docker, Docker buildx, Tekton Pipelines, Gitpod, Earthly, Dagger 및 기타 CI/CD와 컨테이너 도구 프로젝트에서 널리 채택되고 있습니다.