Параллельный и эффективно использующий кэш инструментарий для сборки артефактов из исходного кода; поддерживает Dockerfile через фронтенды и служит движком для сборок Docker.
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
Добавьте rules_img в файл MODULE.bazel
- 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 обновляется ежедневно.
Похожие проекты
CLI-инструмент без демона для запуска, сборки и управления OCI-контейнерами, образами, томами и подами с интерфейсом, совместимым с Docker.
Собирайте оптимизированные Docker- и OCI-образы Java-приложений с помощью Maven или Gradle, не используя Docker daemon.
Прикладное ядро на Go, которое изолирует контейнеры, перехватывая системные вызовы Linux в пространстве пользователя; запускается как OCI runtime runsc.
Clair — инструмент статического анализа с открытым исходным кодом, который индексирует образы контейнеров и сверяет их с базой известных уязвимостей.
Графическое приложение для сборки, запуска и управления контейнерами и Kubernetes локально на базе Podman и других контейнерных движков.