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