Repolode
bazel-contrib

bazel-contrib/rules_img

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.

Alternativa open source a:Docker Build

Estrelas
144
Forks
58
Issues abertas
16
Último commit
há 13 horas

O que é?

rules_img é um conjunto de regras do Bazel para criar imagens de contêiner OCI diretamente durante um build do Bazel, sem um daemon do Docker. Ele oferece suporte a configurações com Bzlmod e WORKSPACE e pode empacotar qualquer target *_binary (C++, Go, Python, Java, Rust e outros) em uma imagem, definindo entrypoint, cmd, env e o diretório de trabalho com base no binário.

O projeto prioriza o desempenho. As imagens-base são baixadas superficialmente: apenas o manifest e a configuração são buscados, e camadas grandes, como as do CUDA, só são baixadas quando necessário. As camadas são geradas em uma única action, e arquivos idênticos são deduplicados usando hardlinks. Várias estratégias de push (eager, lazy, CAS registry e BES) permitem enviar imagens a partir de execução remota ou do cache remoto do Bazel sem passar pela máquina local. O projeto também oferece suporte a índices multiplataforma, eStargz e lazy pulling com SOCI, além de camadas de sistema de arquivos e de imagens de disco.

Recursos principais

  • 01Cria imagens OCI no Bazel sem um daemon do Docker, com builds herméticos.
  • 02Empacota qualquer target *_binary em uma imagem de contêiner, definindo entrypoint e cmd automaticamente.
  • 03Baixa imagens-base superficialmente, buscando apenas manifests e configurações até que as camadas sejam necessárias.
  • 04Deduplica arquivos idênticos entre camadas usando hardlinks.
  • 05Oferece várias estratégias de push, incluindo envios lazy a partir do cache remoto do Bazel.
  • 06Oferece suporte a índices de imagens multiplataforma, eStargz e lazy pulling com SOCI.

Casos de uso

  • Criar imagens de contêiner para serviços escritos em C++, Go, Python ou Java em um monorepo Bazel existente.
  • Distribuir imagens grandes para GPU, como workloads baseados em CUDA, sem baixar todas as camadas da imagem-base em cada máquina de build.
  • Enviar imagens de clusters de CI ou de execução remota para um registry sem copiar as camadas para a máquina de build.
  • Gerar imagens para várias arquiteturas, como linux/amd64 e linux/arm64, a partir de uma única configuração do Bazel.

Início rápido

  1. 1

    Adicione rules_img ao seu arquivo MODULE.bazel

  2. 2

    Opcionalmente, configure as definições padrão no seu arquivo .bazelrc

Antes de usar

  • A versão atual é a 0.3.x, então a API ainda pode mudar entre lançamentos.
  • Alguns recursos, como imagens de disco, estão marcados como experimentais.

Tópicos

Perguntas frequentes

O que é rules_img?
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. rules_img é um conjunto de regras do Bazel para criar imagens de contêiner OCI diretamente durante um build do Bazel, sem um daemon do Docker. Ele oferece suporte a configurações com Bzlmod e WORKSPACE e pode empacotar qualquer target *_binary (C++, Go, Python, Java, Rust e outros) em uma imagem, definindo entrypoint, cmd, env e o diretório de trabalho com base no binário.
rules_img é gratuito? Qual é a licença?
rules_img é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
rules_img ainda é mantido?
Manutenção ativa. O último commit de rules_img foi em 6 de nov. de 2026.
Para que posso usar rules_img?
Criar imagens de contêiner para serviços escritos em C++, Go, Python ou Java em um monorepo Bazel existente. Distribuir imagens grandes para GPU, como workloads baseados em CUDA, sem baixar todas as camadas da imagem-base em cada máquina de build. Enviar imagens de clusters de CI ou de execução remota para um registry sem copiar as camadas para a máquina de build. Gerar imagens para várias arquiteturas, como linux/amd64 e linux/arm64, a partir de uma única configuração do Bazel.
Como instalar rules_img?
Adicione rules_img ao seu arquivo MODULE.bazel Opcionalmente, configure as definições padrão no seu arquivo .bazelrc
Onde consigo rules_img?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/bazel-contrib/rules_img

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

Projetos relacionados