/rules_oci

Bazel rules for building OCI containers

Primary LanguageStarlarkApache License 2.0Apache-2.0

Bazel rules for OCI containers

This is an alternative to rules_docker.

We start from first principles and plan to avoid some pitfalls learned in maintaining that repo:

  • Use a toolchain consisting of off-the-shelf, pre-built layer and container manipulation tools.
  • Don't write language-specific rules, as we cannot be experts on all languages, nor can users deal with the versioning issues that come with dependencies we might take on the rules for those languages.
  • Don't be docker-specific, now that it has a commercial license and other container runtimes exist.
  • Use our toolchain hermetically: don't assume there is a docker pre-installed on the machine.
  • Keep a tight complexity budget for the project so we are able to commit to effective maintenance.

Need help? This ruleset has support provided by https://aspect.dev.

Installation

From the release you wish to use: https://github.com/bazel-contrib/rules_oci/releases copy the WORKSPACE snippet into your WORKSPACE file.

Usage

See the API documentation in the docs folder and the example usage in the examples folder. Note that the example relies on the setup code in the /WORKSPACE file in the root of this repo.