Building your First App

Structure of the app meta file, and how to build the app

The auterion-app.yml file

The auterion-app.yml file has to be in the apps root directory. In its most basic form it is structured like this:

auterion-api-version: 2  # The auterion API version this app is targeting
auterion-app-base: none  # Can be set to a version of the auterion/app-base 
                         # docker image, if it is used as a base image in the app. 
                         # This makes the tooling remove all the layers from the 
                         # respective base image to reduce the app size. 

app-name: example-webservice          # The name of your app
app-version: 0.0.1                    # The version of your app
app-author: com.auterion              # The authoring entity. 
                                      # Has to be reverse-domain name notation
target-platform: [skynode, ainode]    # Supported platforms of this app.
                                      # Can be skynode or ainode


# Like in docker-compose, your app can consist of multiple docker containers. 
# In 'services' you list all the containers that make up your app. In most 
# cases, this is just one service
services:
  example-webservice:                     # name of this service
    build: services/example-webservice    # location of the Dockerfile of the service
    # .... Additional API configurations .....
  existing-docker-image:                  # name of another service
    image: ubuntu:22.04                   # Auterion-cli can include existing images

Each AuterionOS app targets a specific API level. The API level an app targets, is specified in the auterion-app.yml file like so:

auterion-api-version: 2

For a full comparison of the available API versions see Apps API.

Building the app

What does auterion-cli app build really do? It performs the following tasks

  1. For all the services with a build directive, it builds the image using docker build --platform=linux/arm64. If the auterion-cli command is invoked with the --simulation flag, it will instead execute docker build --platform=linux/amd64.

  2. For all services with a image directive it pulls them from docker hub

  3. It packages the built image into a .auterionos file

Last updated