/cnabtools

Tools around the CNAB specification (see https://cnab.io)

Primary LanguagePythonMIT LicenseMIT

Tools around the CNAB specification (see https://cnab.io)

This repo includes:

  • docker2: a CNAB driver that gives more extensive access to the host machine than the existing docker driver in Duffle.
  • bundler: A toolkit and Command-Line Interface to build CNAB applications from Duffle specifications, in a more reproducible way. What this does is it uses Buildkit instead of Docker to have reproducible builds of the invocation images.
  • docker: A toolkit and Command-Line Interface to use Docker/Buildkit in a reproducible way. We include, among other things, the ability to simply tag Docker images in a content-addressable fashion and to do "client-side" caching of Docker builds, that is, not even send the build context to the Docker daemon if a content-addressable image has already been cached in the daemon. This can save a lot of time if the build context is large.

The tools are organized in a Python package. It can be installed this way:

pip3 install -e ./cnabtools

And the tools can be invoked using python3 -m:

python3 -m cnabtools.bundler --help