Skip to main content

OCI Package

NanoBus has a built-in command in the CLI, nanobus push that packages all the information needed to run a NanoBus application for distribution. This is based on existing OCI registry architecture and standards. Any standards-compliant OCI registry is able to support NanoBus application packages.

Package Spec

The package details are defined in the bus.yaml file of the application.

package:
registry: reg.mycorp.com # or your own registry
org: myorg # this is the registry project/organization that will host the NanoBus package
add: # the bus.yaml, apex.axdl, and referenced local WASM Iota are automatically added
- ui/dist/ # Any static served files need to be in the `add` section
- resources.yaml # Any resource files need to be in the `add` section
- migrations/sql # Any initializers / migration files need to be in the `add` section.

Credentials / Pushing

Docker Config File

NanoBus will by default read the credentials if any are stored in your $HOME/.docker/config.json file.

ENV Variables

If there are any credentials stored in the config file, they will be used first. If you want to override the config file, you can set the following environment variables:

export OCI_REGISTRIES=MYREG
export MYREG_HOSTNAME=reg.mycorp.com
export MYREG_USERNAME=<your registry username>
export MYREG_PASSWORD=<your registry password>

Then just run nanobus push and it will package all the files and upload them to the registry. The name of the package will be created by following fields from your bus.yaml:

{package.registry}/{package.org}/{id}:{version}

If the id of an app was example and version was 0.1.0, and contained the package values as defined above, it would be uploaded to:

reg.mycorp.com/myorg/example:0.1.0

Push GitHub action

A github action is available for adding the Package + Push functionality directly into your CI flow: https://github.com/marketplace/actions/nanobus-push