Repolode
bazel-contrib

bazel-contrib/rules_img

Правила Bazel для сборки OCI-образов из целей Bazel: неглубокая загрузка базовых образов, дедупликация слоёв и стратегии публикации, не передающие данные через локальную машину.

Open source альтернатива:Docker Build

Звёзды
144
Форки
58
Открытые issues
16
Последний коммит
вчера

Что это?

rules_img — набор правил Bazel для сборки OCI-образов непосредственно в процессе сборки Bazel, без Docker daemon. Поддерживаются Bzlmod и WORKSPACE, а в образ можно упаковать любую цель *_binary (C++, Go, Python, Java, Rust и другие); entrypoint, cmd, env и рабочая директория настраиваются на основе бинарного файла.

Проект ориентирован на производительность. Базовые образы загружаются неглубоко: скачиваются только manifest и config, а большие слои, например CUDA, — лишь при необходимости. Слои создаются за одно действие, а одинаковые файлы дедуплицируются с помощью жёстких ссылок. Несколько стратегий публикации (eager, lazy, CAS registry и BES) позволяют загружать образы из удалённого выполнения или удалённого кэша Bazel, не передавая данные через локальную машину. Также поддерживаются мультиплатформенные индексы, ленивая загрузка eStargz и SOCI, а также слои файловых систем и дисковых образов.

Ключевые возможности

  • 01Собирает OCI-образы в Bazel без Docker daemon и обеспечивает герметичность сборок.
  • 02Упаковывает любую цель *_binary в образ контейнера, автоматически настраивая entrypoint и cmd.
  • 03Неглубоко загружает базовые образы: скачивает только manifest и config, пока не понадобятся слои.
  • 04Дедуплицирует одинаковые файлы в разных слоях с помощью жёстких ссылок.
  • 05Предлагает несколько стратегий публикации, включая отложенную публикацию из удалённого кэша Bazel.
  • 06Поддерживает мультиплатформенные индексы образов, eStargz и ленивую загрузку SOCI.

Сценарии использования

  • Сборка образов контейнеров для сервисов на C++, Go, Python или Java в существующем монорепозитории Bazel.
  • Публикация больших GPU-образов, например для нагрузок на базе CUDA, без скачивания всех базовых слоёв на каждой машине сборки.
  • Публикация образов из CI или кластеров удалённого выполнения в реестр без копирования слоёв на хост сборки.
  • Создание мультиархитектурных образов для linux/amd64 и linux/arm64 с помощью одной конфигурации Bazel.

Быстрый старт

  1. 1

    Добавьте rules_img в файл MODULE.bazel

  2. 2

    При желании настройте параметры по умолчанию в файле .bazelrc

Что важно знать

  • Текущая версия — 0.3.x, поэтому API может меняться между выпусками.
  • Некоторые функции, например образы дисков, помечены как экспериментальные.

Темы

Частые вопросы

Что такое rules_img?
Правила Bazel для сборки OCI-образов из целей Bazel: неглубокая загрузка базовых образов, дедупликация слоёв и стратегии публикации, не передающие данные через локальную машину. rules_img — набор правил Bazel для сборки OCI-образов непосредственно в процессе сборки Bazel, без Docker daemon. Поддерживаются Bzlmod и WORKSPACE, а в образ можно упаковать любую цель *_binary (C++, Go, Python, Java, Rust и другие); entrypoint, cmd, env и рабочая директория настраиваются на основе бинарного файла.
rules_img можно использовать бесплатно? Какая у него лицензия?
rules_img распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
rules_img всё ещё поддерживается?
Активно поддерживается. Последний коммит в rules_img — 6 нояб. 2026 г..
Для чего можно использовать rules_img?
Сборка образов контейнеров для сервисов на C++, Go, Python или Java в существующем монорепозитории Bazel. Публикация больших GPU-образов, например для нагрузок на базе CUDA, без скачивания всех базовых слоёв на каждой машине сборки. Публикация образов из CI или кластеров удалённого выполнения в реестр без копирования слоёв на хост сборки. Создание мультиархитектурных образов для linux/amd64 и linux/arm64 с помощью одной конфигурации Bazel.
Как установить rules_img?
Добавьте rules_img в файл MODULE.bazel При желании настройте параметры по умолчанию в файле .bazelrc
Где скачать rules_img?
Исходный код и инструкции по установке — на GitHub: https://github.com/bazel-contrib/rules_img

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Параллельный и эффективно использующий кэш инструментарий для сборки артефактов из исходного кода; поддерживает Dockerfile через фронтенды и служит движком для сборок Docker.

10,4 тыс.+3 за неделю1,6 тыс.GoApache-2.0Активно поддерживаетсяОбновлён вчера

CLI-инструмент без демона для запуска, сборки и управления OCI-контейнерами, образами, томами и подами с интерфейсом, совместимым с Docker.

33,2 тыс.+41 за неделю3,4 тыс.GoApache-2.0Обновлён 21 час назад

Прикладное ядро на Go, которое изолирует контейнеры, перехватывая системные вызовы Linux в пространстве пользователя; запускается как OCI runtime runsc.

19,9 тыс.+59 за неделю2,1 тыс.GoApache-2.0Обновлён 20 часов назад

Clair — инструмент статического анализа с открытым исходным кодом, который индексирует образы контейнеров и сверяет их с базой известных уязвимостей.

11,1 тыс.+1 за неделю1,2 тыс.GoApache-2.0Активно поддерживаетсяОбновлён 3 дня назад