GoogleContainerTools /distroless
🥑 Language focused docker images, minus the operating system.
★ 23,216⑂ 1,440
23,216
stars
+18+23+96
1,440
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
"Distroless" Container Images. "Distroless" images contain only your application and its runtime dependencies. They do not contain package managers, shells or any other programs you would expect to find in a standard Linux distribution. For more information, see this talk (video). Why should I use distroless images? Restricting what's in your runtime container to precisely what's necessary for your app is a best practice employed by Google and other tech giants that have used containers in production for many years. It improves the signal to noise of scanners (e.g. CVE) and reduces the burden of establishing provenance to just what you need. Distroless images are _very small_. The smallest distroless image, gcr.io/distroless/static-debian13, is around 2 MiB. That's about 50% of the size of alpine (~5 MiB), and less than 2% of the size of debian (124 MiB). How do I use distroless images? These images are built using bazel, but they can also be used through other Docker image build tooling. What images are available? The following images are currently published and updated by the distroless project (see SUPPORT_POLICY.md for support timelines) These images refer to image indexes with references to all supported architectures. Architecture specific images can be directly referenced using an additional architecture suffix on the tag, like gcr.io/distroless/static-debian13:latest-amd64 Any other tags are considered deprecated and are no longer updated Debian 13 Debian 13 distroless images use the debian UsrMerge scheme. If you use rules_distroless to add packages to an image, set mergedusr = True in apt.install. | Image | Tags | Architecture Suffixes | | ------------------------------------- | ------------------------------------- | ------------------------------------------ | | gcr.io/distroless/static-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, arm, s390x, ppc64le, riscv64 | | gcr.io/distroless/base-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, arm, s390x, ppc64le, riscv64 | | gcr.io/distroless/base-nossl-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, arm, s390x, ppc64le, riscv64 | | gcr.io/distroless/cc-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, arm, s390x, ppc64le, riscv64 | | gcr.io/distroless/java-base-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, s390x, ppc64le, riscv64 | | gcr.io/distroless/java17-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, s390x, ppc64le, riscv64 | | gcr.io/distroless/java21-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, s390x, ppc64le, riscv64 | | gcr.io/distroless/java25-debian13 | latest, nonroot, debug, debug-nonroot | amd64, arm64, s390x, ppc64le, riscv64 | | gcr.io/distroless/nodejs22-debian13 | latest, nonroot, debug, debug-non