Bazel rules to construct images using https://github.com/GoogleContainerTools/distroless
101
stars
168
commits
Starlark
primary language
Sep 2, 2026
updated
rules_distrolessBazel helper rules to aid with some of the steps needed to create a Linux /
Debian installation. These rules are designed to replace commands such as
apt-get install, passwd, groupadd, useradd, update-ca-certificates.
[!CAUTION]
rules_distrolessis currently in beta and does not yet offer a stable Public API. However, many users are already successfully using it in production environments. Check Adopters to see who's already using it.
This ruleset is primarily funded to support Google's distroless container
images. We may not work on feature requests that do not support this mission.
We will however accept fully tested contributions via pull requests if they
align with the project goals (e.g. add support for a different compression
format) and may reject requests that do not (e.g. supporting other packaging
formats other than .deb).
[!TIP] There's limited maintainer time for this project, so we strongly encourage focused, small, and readable Pull Requests.
Add the following to your MODULE.bazel file:
bazel_dep(name = "rules_distroless", version = "0.5.1")
You can find the latest release version in the Bazel Central Registry.
If you want to use a specific commit (e.g. there are commits in main that are
still not part of a release) you can use one of the few mechanisms that Bazel
provides to override repos.
You can use git_override, archive_override, etc (or
local_path_override if you want to test a local patch):
bazel_dep(name = "rules_distroless", version = "0.5.1")
git_override(
module_name = "rules_distroless",
remote = "https://github.com/bazel-contrib/rules_distroless.git",
commit = "a69bc1949d5daf2d1b0906890667d69b0897688b",
)
The examples demonstrate how to accomplish typical tasks such as create a new user group or create a new home directory:
We also have distroless-specific rules that could be useful:
tar archives./etc/os-release file./usr/lib/locale to be smaller./var/lib/dpkg/status.d
package database for scanners to discover installed packages.To read more specific documentation for each of the rules in the repo please check the following docs:
[!TIP] Are you using
rules_distroless? Please send us a Pull Request to add your project or company name here!
(top 30 of 38)
Starlark
95.0%
Shell
3.0%
Java
1.8%
Bazel rules to construct images using https://github.com/GoogleContainerTools/distroless
101
stars
168
commits
Starlark
primary language
Sep 2, 2026
updated
rules_distrolessBazel helper rules to aid with some of the steps needed to create a Linux /
Debian installation. These rules are designed to replace commands such as
apt-get install, passwd, groupadd, useradd, update-ca-certificates.
[!CAUTION]
rules_distrolessis currently in beta and does not yet offer a stable Public API. However, many users are already successfully using it in production environments. Check Adopters to see who's already using it.
This ruleset is primarily funded to support Google's distroless container
images. We may not work on feature requests that do not support this mission.
We will however accept fully tested contributions via pull requests if they
align with the project goals (e.g. add support for a different compression
format) and may reject requests that do not (e.g. supporting other packaging
formats other than .deb).
[!TIP] There's limited maintainer time for this project, so we strongly encourage focused, small, and readable Pull Requests.
Add the following to your MODULE.bazel file:
bazel_dep(name = "rules_distroless", version = "0.5.1")
You can find the latest release version in the Bazel Central Registry.
If you want to use a specific commit (e.g. there are commits in main that are
still not part of a release) you can use one of the few mechanisms that Bazel
provides to override repos.
You can use git_override, archive_override, etc (or
local_path_override if you want to test a local patch):
bazel_dep(name = "rules_distroless", version = "0.5.1")
git_override(
module_name = "rules_distroless",
remote = "https://github.com/bazel-contrib/rules_distroless.git",
commit = "a69bc1949d5daf2d1b0906890667d69b0897688b",
)
The examples demonstrate how to accomplish typical tasks such as create a new user group or create a new home directory:
We also have distroless-specific rules that could be useful:
tar archives./etc/os-release file./usr/lib/locale to be smaller./var/lib/dpkg/status.d
package database for scanners to discover installed packages.To read more specific documentation for each of the rules in the repo please check the following docs:
[!TIP] Are you using
rules_distroless? Please send us a Pull Request to add your project or company name here!
(top 30 of 38)
Starlark
95.0%
Shell
3.0%
Java
1.8%