Skip to content
Container builder for Maru OS.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Maru OS Container Blueprints

Build Status

Container image builder for Maru OS.


Image building logic is separated into standalone plugins called blueprints.

To create your own blueprint, all you need to do is:

  1. Add a directory under blueprint/. Use this directory to store anything you need during the build process.

  2. Add a script called to the top-level of your new blueprint directory. This will be the entrypoint to your blueprint.

  3. Define the function blueprint_build in that will run your build logic.

  4. Define the function blueprint_cleanup in that will clean up any intermediate build artifacts.

See blueprint/debian as the canonical example for Debian.


Build the default container:

$ ./

Build a minimal Debian arm64 stretch container called "stretch-container":

$ ./ -b debian -n stretch-container -- -r stretch -a arm64 --minimal

Tip: You will need root privileges to mount binfmt_misc for bootstrapping foreign architecture containers.

Building with Docker

If you have Docker set up on your machine, just substitute ./ with ./ to run a build within a Docker container with all the necessary dependencies pre-installed. All args will be passed to just like usual.

Build a Debian arm64 stretch container called "stretch-container" with Docker (args will be passed to

$ ./ -b debian -n stretch-container -- -r stretch -a arm64 --minimal

To stop the build early you can run:

$ docker stop $CONTAINER_ID

where $CONTAINER_ID is determined from docker ps.


See the main Maru OS repository for more info.


Apache 2.0

You can’t perform that action at this time.