Repolode
moby

moby/buildkit

Параллельный и эффективно использующий кэш инструментарий для сборки артефактов из исходного кода; поддерживает Dockerfile через фронтенды и служит движком для сборок Docker.

Звёзды
10,374
Форки
1,565
Открытые issues
835
Последний коммит
22 часа назад

Что это?

BuildKit — это инструментарий для воспроизводимой сборки артефактов из исходного кода. Он работает как демон (buildkitd) с клиентом buildctl, а сборки описываются на LLB — бинарном промежуточном формате, задающем граф зависимостей между шагами. Благодаря этому независимые шаги можно выполнять параллельно, а результаты кэшировать для каждой инструкции.

BuildKit не привязан к Dockerfile: его поддержку обеспечивает фронтенд, а для других языков сборки, например YAML, Starlark или определений на Python, можно реализовать собственные фронтенды. Результаты сборки можно сохранять в реестры образов контейнеров, хранилище образов containerd, локальные каталоги, а также в виде архивов Docker, OCI и tar. Кэш можно импортировать и экспортировать через встроенные метаданные, реестры, локальные каталоги, GitHub Actions, S3 и Azure Blob Storage.

Демон поддерживает воркеры OCI (runc) и containerd, может работать без прав root, а его gRPC API можно предоставлять через Unix-сокеты или TCP с защитой mTLS. BuildKit используется в Docker Buildx и Docker Engine, а также в ряде других инструментов сборки.

Ключевые возможности

  • 01Параллельное выполнение независимых шагов сборки на основе графа зависимостей LLB
  • 02Кэширование сборки на уровне инструкций с возможностью импорта и экспорта через реестры, локальные каталоги, GitHub Actions, S3 и Azure Blob Storage
  • 03Подключаемые фронтенды, в том числе для Dockerfile и внешние фронтенды на основе gateway
  • 04Несколько типов выходных данных: реестры образов, хранилище containerd, локальные файлы, Docker, OCI и tar
  • 05Мультиплатформенные сборки и работа без прав root
  • 06Автоматическая очистка кэша сборки

Сценарии использования

  • Запуск отдельного демона сборки на Linux-серверах или в кластерах Kubernetes
  • Сборка образов контейнеров в CI-пайплайнах с общим кэшем в реестре или бакете S3
  • Создание собственных языков сборки на основе LLB для сценариев, не использующих Dockerfile
  • Создание локальных артефактов сборки, например отчётов или бинарных файлов, вместо образов контейнеров

Быстрый старт

  1. 1

    Скачайте последние бинарные файлы со страницы релизов

  2. 2

    Запустите демон buildkitd от имени root в Linux

    sudo buildkitd
  3. 3

    Соберите образ из Dockerfile с помощью buildctl, используя фронтенд dockerfile.v0

    buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.

Что важно знать

  • Демон buildkitd работает только в Linux и Windows, но не в macOS.
  • Для запуска демона обычно нужны права root, поэтому для настройки rootless требуется дополнительная конфигурация.
  • Формула Homebrew для macOS неофициальная и не включает демон.

В подборках

Темы

Частые вопросы

Что такое buildkit?
Параллельный и эффективно использующий кэш инструментарий для сборки артефактов из исходного кода; поддерживает Dockerfile через фронтенды и служит движком для сборок Docker. BuildKit — это инструментарий для воспроизводимой сборки артефактов из исходного кода. Он работает как демон (buildkitd) с клиентом buildctl, а сборки описываются на LLB — бинарном промежуточном формате, задающем граф зависимостей между шагами. Благодаря этому независимые шаги можно выполнять параллельно, а результаты кэшировать для каждой инструкции.
buildkit можно использовать бесплатно? Какая у него лицензия?
buildkit распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
buildkit всё ещё поддерживается?
Активно поддерживается. Последний коммит в buildkit — 6 нояб. 2026 г..
Для чего можно использовать buildkit?
Запуск отдельного демона сборки на Linux-серверах или в кластерах Kubernetes Сборка образов контейнеров в CI-пайплайнах с общим кэшем в реестре или бакете S3 Создание собственных языков сборки на основе LLB для сценариев, не использующих Dockerfile Создание локальных артефактов сборки, например отчётов или бинарных файлов, вместо образов контейнеров
Как установить buildkit?
Скачайте последние бинарные файлы со страницы релизов Запустите демон buildkitd от имени root в Linux: sudo buildkitd Соберите образ из Dockerfile с помощью buildctl, используя фронтенд dockerfile.v0: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
Где скачать buildkit?
Исходный код и инструкции по установке — на GitHub: https://github.com/moby/buildkit

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Правила Bazel для сборки OCI-образов из целей Bazel: неглубокая загрузка базовых образов, дедупликация слоёв и стратегии публикации, не передающие данные через локальную машину.

14458GoApache-2.0Активно поддерживаетсяОбновлён 22 часа назад