Repolode
moby

moby/buildkit

Um toolkit de build concorrente e eficiente no uso de cache que transforma código-fonte em artefatos de build, oferece suporte a Dockerfile por meio de frontends e é usado como mecanismo por trás dos builds do Docker.

Estrelas
10,374
Forks
1,565
Issues abertas
835
Último commit
ontem

O que é?

BuildKit é um toolkit para transformar código-fonte em artefatos de build de forma reproduzível. Ele roda como um daemon (buildkitd) com um cliente buildctl, e os builds são descritos em LLB, um formato intermediário binário que define um grafo de dependências das etapas de build, permitindo executar etapas independentes em paralelo e armazenar os resultados em cache instrução por instrução.

BuildKit não depende de Dockerfile: o suporte a Dockerfile é fornecido por um frontend, e outras linguagens de build, como YAML, Starlark ou definições baseadas em Python, podem ser implementadas como frontends. As saídas incluem registries de imagens de container, o armazenamento de imagens do containerd, diretórios locais e arquivos Docker, OCI e tar. O cache pode ser importado e exportado por meio de metadados inline, registries, diretórios locais, GitHub Actions, S3 e Azure Blob Storage.

O daemon oferece suporte a workers OCI (runc) e containerd, pode rodar sem privilégios de root e pode expor sua API gRPC por sockets Unix ou TCP protegido por mTLS. Ele é usado pelo Docker Buildx e pelo Docker Engine, além de várias outras ferramentas de build.

Recursos principais

  • 01Execução paralela de etapas de build independentes por meio do grafo de dependências do LLB
  • 02Cache de build por instrução, com importação e exportação para registries, diretórios locais, GitHub Actions, S3 e Azure Blob Storage
  • 03Frontends conectáveis, incluindo Dockerfile e frontends externos baseados em gateway
  • 04Vários tipos de saída: registries de imagens, armazenamento do containerd, arquivos locais, Docker, OCI e tar
  • 05Builds multiplataforma e execução sem root
  • 06Coleta automática de lixo do cache de build

Casos de uso

  • Executar um daemon de build independente em servidores Linux ou em clusters Kubernetes
  • Criar imagens de container em pipelines de CI, compartilhando o cache por meio de um registry ou bucket S3
  • Definir linguagens de build personalizadas sobre LLB para fluxos de trabalho que não usam Dockerfile
  • Gerar artefatos de build locais, como relatórios ou binários, em vez de imagens de container

Início rápido

  1. 1

    Baixe os binários mais recentes na página de releases

  2. 2

    Inicie o daemon buildkitd como root no Linux

    sudo buildkitd
  3. 3

    Crie uma imagem a partir de um Dockerfile com buildctl usando o frontend dockerfile.v0

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

Antes de usar

  • O daemon buildkitd é executado apenas no Linux e no Windows, não no macOS.
  • Normalmente, é necessário ter permissões de root para iniciar o daemon; por isso, a configuração rootless exige ajustes adicionais.
  • A fórmula do Homebrew para macOS não é oficial e não inclui o daemon.

Em coleções

Tópicos

Perguntas frequentes

O que é buildkit?
Um toolkit de build concorrente e eficiente no uso de cache que transforma código-fonte em artefatos de build, oferece suporte a Dockerfile por meio de frontends e é usado como mecanismo por trás dos builds do Docker. BuildKit é um toolkit para transformar código-fonte em artefatos de build de forma reproduzível. Ele roda como um daemon (buildkitd) com um cliente buildctl, e os builds são descritos em LLB, um formato intermediário binário que define um grafo de dependências das etapas de build, permitindo executar etapas independentes em paralelo e armazenar os resultados em cache instrução por instrução.
buildkit é gratuito? Qual é a licença?
buildkit é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
buildkit ainda é mantido?
Manutenção ativa. O último commit de buildkit foi em 6 de nov. de 2026.
Para que posso usar buildkit?
Executar um daemon de build independente em servidores Linux ou em clusters Kubernetes Criar imagens de container em pipelines de CI, compartilhando o cache por meio de um registry ou bucket S3 Definir linguagens de build personalizadas sobre LLB para fluxos de trabalho que não usam Dockerfile Gerar artefatos de build locais, como relatórios ou binários, em vez de imagens de container
Como instalar buildkit?
Baixe os binários mais recentes na página de releases Inicie o daemon buildkitd como root no Linux: sudo buildkitd Crie uma imagem a partir de um Dockerfile com buildctl usando o frontend dockerfile.v0: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
Onde consigo buildkit?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/moby/buildkit

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados