BuildKit의 여러 빌더, 멀티 플랫폼 이미지, Bake 등의 기능을 `docker build`에 추가하는 Docker CLI 플러그인입니다.
moby/buildkit
소스 코드를 빌드 아티팩트로 변환하는 동시 실행·캐시 효율적인 빌드 툴킷으로, 프런트엔드를 통해 Dockerfile을 지원하며 Docker 빌드 엔진으로 사용됩니다.
- 스타
- 10,377
- 포크
- 1,565
- 열린 이슈
- 835
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
BuildKit은 소스 코드를 재현 가능한 방식으로 빌드 아티팩트로 변환하는 툴킷입니다. 데몬(buildkitd)과 클라이언트(buildctl)로 실행되며, 빌드는 빌드 단계의 의존성 그래프를 정의하는 바이너리 중간 형식인 LLB로 표현됩니다. 이에 따라 서로 독립적인 단계는 동시에 실행할 수 있고, 각 명령의 결과를 캐시할 수 있습니다.
BuildKit은 Dockerfile에 종속되지 않습니다. Dockerfile 지원은 프런트엔드에서 제공하며, YAML, Starlark 또는 Python 기반 정의 같은 다른 빌드 언어도 프런트엔드로 구현할 수 있습니다. 출력 대상에는 컨테이너 이미지 레지스트리, containerd 이미지 저장소, 로컬 디렉터리, Docker·OCI·tar 아카이브가 포함됩니다. 캐시는 인라인 메타데이터, 레지스트리, 로컬 디렉터리, GitHub Actions, S3, Azure Blob Storage를 통해 가져오거나 내보낼 수 있습니다.
데몬은 OCI(runc) 및 containerd 워커를 지원하고, root 권한 없이 실행할 수 있으며, Unix 소켓 또는 mTLS로 보호되는 TCP를 통해 gRPC API를 제공할 수 있습니다. Docker Buildx와 Docker Engine을 비롯해 여러 다른 빌드 도구에서도 사용됩니다.
핵심 기능
- 01LLB 의존성 그래프를 통해 서로 독립적인 빌드 단계를 병렬 실행
- 02레지스트리, 로컬 디렉터리, GitHub Actions, S3, Azure Blob Storage와 가져오고 내보낼 수 있는 명령 단위 빌드 캐시
- 03Dockerfile 및 gateway 기반 외부 프런트엔드를 포함한 플러그인형 프런트엔드
- 04이미지 레지스트리, containerd 저장소, 로컬 파일, Docker·OCI·tar 등 다양한 출력 형식
- 05멀티 플랫폼 빌드 및 rootless 실행
- 06빌드 캐시 자동 가비지 컬렉션
활용 사례
- Linux 서버나 Kubernetes 클러스터에서 독립형 빌드 데몬 실행
- CI 파이프라인에서 레지스트리 또는 S3 버킷을 통해 캐시를 공유하며 컨테이너 이미지 빌드
- Dockerfile을 사용하지 않는 워크플로를 위해 LLB 기반의 맞춤 빌드 언어 정의
- 컨테이너 이미지 대신 보고서나 바이너리 같은 로컬 빌드 아티팩트 생성
빠른 시작
- 1
릴리스 페이지에서 최신 바이너리를 다운로드합니다
- 2
Linux에서 root 권한으로 buildkitd 데몬을 시작합니다
sudo buildkitd - 3
dockerfile.v0 프런트엔드를 사용해 buildctl로 Dockerfile을 빌드합니다
buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
사용 전 알아둘 점
- buildkitd 데몬은 Linux와 Windows에서만 실행되며 macOS에서는 실행되지 않습니다.
- 일반적으로 데몬을 시작하려면 root 권한이 필요하므로 rootless 설정에는 추가 구성이 필요합니다.
- macOS용 Homebrew formula는 비공식이며 데몬을 포함하지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- buildkit은(는) 무엇인가요?
- 소스 코드를 빌드 아티팩트로 변환하는 동시 실행·캐시 효율적인 빌드 툴킷으로, 프런트엔드를 통해 Dockerfile을 지원하며 Docker 빌드 엔진으로 사용됩니다. BuildKit은 소스 코드를 재현 가능한 방식으로 빌드 아티팩트로 변환하는 툴킷입니다. 데몬(buildkitd)과 클라이언트(buildctl)로 실행되며, 빌드는 빌드 단계의 의존성 그래프를 정의하는 바이너리 중간 형식인 LLB로 표현됩니다. 이에 따라 서로 독립적인 단계는 동시에 실행할 수 있고, 각 명령의 결과를 캐시할 수 있습니다.
- buildkit은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- buildkit은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- buildkit은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. buildkit의 마지막 커밋은 2026년 11월 6일입니다.
- buildkit은(는) 어디에 사용할 수 있나요?
- Linux 서버나 Kubernetes 클러스터에서 독립형 빌드 데몬 실행 CI 파이프라인에서 레지스트리 또는 S3 버킷을 통해 캐시를 공유하며 컨테이너 이미지 빌드 Dockerfile을 사용하지 않는 워크플로를 위해 LLB 기반의 맞춤 빌드 언어 정의 컨테이너 이미지 대신 보고서나 바이너리 같은 로컬 빌드 아티팩트 생성
- buildkit는 어떻게 설치하나요?
- 릴리스 페이지에서 최신 바이너리를 다운로드합니다 Linux에서 root 권한으로 buildkitd 데몬을 시작합니다: sudo buildkitd dockerfile.v0 프런트엔드를 사용해 buildctl로 Dockerfile을 빌드합니다: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
- buildkit은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/moby/buildkit
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Bazel 타깃으로 OCI 컨테이너 이미지를 빌드하는 Bazel 규칙으로, 베이스 이미지를 얕게 가져오고 레이어를 중복 제거하며 로컬 머신을 거치지 않는 푸시 전략을 제공합니다.
BuildKit 기반 Dockerfile 빌드 디버거로, 브레이크포인트 설정, 단계별 실행, 빌드 단계 내부의 셸 접근을 지원합니다.
오픈소스 LLM을 호스팅하고 빌드·파인튜닝·패키징해 OpenAI 호환 API로 제공하는 Docker 기반 툴킷입니다.
로컬, CI, 클라우드에서 컨테이너로 코드베이스를 빌드·테스트·배포하는 프로그래밍 가능한 자동화 엔진입니다.
변경되지 않은 작업을 캐싱하고 영향받은 작업만 실행하며 CI와 연동하는 TypeScript 및 다중 언어 코드베이스용 모노레포 빌드 플랫폼입니다.