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.
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
Adicione rules_img ao seu arquivo MODULE.bazel
- 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
Ferramenta CLI sem daemon para executar, criar e gerenciar containers, imagens, volumes e pods OCI, com uma interface compatível com Docker.
Crie imagens de container Docker e OCI otimizadas para aplicações Java com Maven ou Gradle, sem precisar de um daemon do Docker.
Um kernel de aplicação escrito em Go que isola containers interceptando chamadas de sistema Linux no userspace e pode ser executado como runtime OCI runsc.
Clair é uma ferramenta de análise estática open source que indexa imagens de contêiner e as compara com vulnerabilidades conhecidas.
Aplicativo gráfico para criar, executar e gerenciar containers e Kubernetes localmente, baseado no Podman e em outros mecanismos de containers.