Building app with the SDK can be quick and fun. However, it has a number of limitations, for example:
To overcome these limitations it is possible to develop apps outside of the SDK. This guide will give you an introduction to doing so. To explain how to do this we will reference currently existing Databox Apps.
Once you have in installed Databox as described here you can you the ‘databox-install-component’ command to locally install and build the image for apps or drivers published on GitHub. Run this command in your Databox root folder to install app-os-monitor.
Note: if you are starting a new app then you can manually create a folder. As a minimum, you will need a Dockerfile and a databox-manifest.json to be able to install the app/driver. Note: if you want to modify this component, fork it on GitHub fist the use
./databox-install-component [YOUR_USERNAME]/app-os-monitoronce you have made an tested your changes then you can submit a pull request back to the original repository
Once this command has completed you can edit the code in ./app-os-monitor to make your changes.
Now that you have installed app-os-monitor locally it is available from the remote or local app-server. When you go back into the databox UI and install app-os-monitor there will be a drop down next to the install button which allows you to select the required store.
Note: If you are developing an app/driver only available locally then there will be no option.
Install the local version and confirm it works by accessing its UI (you will need to install driver-os-monitor first).
You can confirm the Databox is running you local image by:
./docker service ls
The output should like this notice the missing (databoxsystems/):
ID NAME MODE REPLICAS IMAGE hwrajzssotmh app-os-monitor replicated 1/1 app-os-monitor zmv1nk7jojd3 databox_arbiter replicated 1/1 databoxsystems/arbiter:latest o3i0okog00e2 databox_container-manager replicated 1/1 databoxsystems/container-manager:latest j4ktcn8kyt8y databox_export-service replicated 1/1 databoxsystems/export-service:latest
Open the apps src code in the editor of your choice and make the required changes and save them! Once this has been done you can run
./databox-install-component again to rebuild the image or:
cd [SRC-FOLDER] docker build -t [APP-NAME] .
Then you can go back into the databox UI and restart the app using the refresh button on the app list screen. This works for drivers too.
Note: This is a quick way to get started but sometimes a different approach is needed, see: docker-dev.md
Docker service logs is your friend, all apps driver and stores are run as docker services so use:
docker services logs app-os-monitor -f
To stream the logs form your modified app.