Skip to content
Latchkey

O Que É o BuildKit? O Motor de Build Moderno do Docker

O BuildKit é o motor moderno por trás do docker build - ele paraleliza stages independentes, cacheia de forma mais inteligente e adiciona build secrets e mounts de primeira classe.

O builder original do Docker rodava instruções estritamente em sequência e tinha caching limitado. O BuildKit repensa o build como um grafo de dependências, então trabalho independente roda em paralelo e apenas o que é necessário é computado. Ele é o padrão no Docker moderno e alimenta o docker buildx.

Um grafo de build, não um script

O BuildKit analisa o Dockerfile em um grafo de operações e resolve dependências. Stages independentes de um multi-stage build rodam concorrentemente, e passos cuja saída não é necessária são pulados inteiramente.

Caching mais inteligente e exportável

O BuildKit pode importar e exportar seu cache para um registry, então runners de CI efêmeros compartilham um cache de build em vez de cada um começar frio. Essa é a chave para builds de container rápidos em CI.

Build secrets e mounts

  • RUN --mount=type=secret injeta um secret em tempo de build sem assá-lo em uma layer.
  • RUN --mount=type=cache persiste caches de gerenciador de pacotes entre builds.
  • --mount=type=bind lê arquivos sem copiá-los para uma layer.

Ativando-o

O BuildKit é o padrão no Docker atual. Em setups mais antigos, DOCKER_BUILDKIT=1 docker build . o ativa. docker buildx build sempre usa o BuildKit e adiciona suporte multi-platform.

BuildKit em CI

Combine o BuildKit com um cache respaldado por registry para tornar builds efêmeros rápidos. Runners gerenciados vão além mantendo o cache do BuildKit aquecido entre jobs, então as layers de dependência são reaproveitadas sem uma ida e volta externa.

Principais conclusões

  • O BuildKit trata o build como um grafo, permitindo paralelismo e skipping.
  • Seu cache exportável permite que runners de CI efêmeros evitem builds frios.
  • Build secrets e cache mounts mantêm secrets fora das layers e aceleram installs.

Guias relacionados