Plugin da CLI do Docker que amplia o `docker build` com recursos do BuildKit, como múltiplos builders, imagens multiplataforma e Bake.
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
Baixe os binários mais recentes na página de releases
- 2
Inicie o daemon buildkitd como root no Linux
sudo buildkitd - 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
Regras do Bazel para criar imagens de contêiner OCI a partir de targets do Bazel, com download superficial de imagens-base, deduplicação de camadas e estratégias de push que evitam transferir dados pela máquina local.
Debugger interativo para builds de Dockerfile, com breakpoints, execução passo a passo e acesso ao shell dentro das etapas, baseado no BuildKit.
Kit de ferramentas baseado em Docker para hospedar, criar, ajustar e empacotar LLMs de código aberto por trás de uma API compatível com a OpenAI.
Um mecanismo programável de automação que compila, testa e entrega bases de código com containers, localmente, em CI ou na nuvem.
Uma plataforma de build para monorepos TypeScript e bases de código poliglotas que armazena em cache o trabalho inalterado, executa apenas as tarefas afetadas e se integra à CI.