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=secretinjeta um secret em tempo de build sem assá-lo em uma layer.RUN --mount=type=cachepersiste caches de gerenciador de pacotes entre builds.--mount=type=bindlê 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.