Standalone Apps¶
The Edge App format provides multiple items for bundling, namely the following:
- App Metadata: Information regarding the app itself, its owner and general information.
- App Version: Information regarding the Docker-compose file to use, the Docker image as well as settings for exposing the app.
- App Configuration: Information regarding which configuration type and configuration to use within the app.
Quick Start Guide¶
Docker and Docker-compose¶
The IE App Publisher relies on Docker and Docker-compose to package your developed apps as Industrial Edge Apps.
The Docker-compose version supported by Industrial Edge is v2.4
or lower.
Create Workspace¶
When using the IE App Publisher, a valid workspace is required. Within this workspace, the IE App Publisher stores additional metadata, such as the app ID, of built apps.
To run commands related to standalone apps, you must first add the IE App Publisher configuration by using the following command:
$ iectl config add publisher \
--name "publisherdev" \ # unique name for the confguration
--workspace "/home/WS" \ # path to for the workspace, used to store app related metadata
--dockerurl "http://127.0.0.1:2375" \ # your docker engine url, used for saving the image refrenced in the docker compose yaml
You create a workspace by running the following command within an empty folder:
iectl publisher workspace init
Alternatively, you can also set the IE_WORKSPACE
environment variable to a valid workspace:
export IE_WORKSPACE="/path/to/valid/workspace"
Create App¶
The first step to create an app is to start with creating an app which contains the App Metadata
information.
You create an app with the following command:
$ iectl publisher standalone-app create \
--appname "my cool app" \
--reponame "mycompany" \ # This relates to the repository name of the docker image.
--appdescription "my cool app" \
--iconpath "/path/to/my/icon" \
--webAddress "www.test.com" \ # Web address for application. [Optional]
--signUpType "SignUpWithoutCode" \ # signUpType: ["SignUpWithCodeOnly", "SignUpWithOrWithoutCode", "NoSignUp", "SignUpWithoutCode", "None"] [Optional]
--externalUrl "www.siemens.com" \ # This URL will be used by IEM app UI to open, application iframe embedded in IEM. [Optional]
The app is afterwards available within your local workspace as well as all generated metadata (i.e. the app ID).
Create App Version¶
The App Version
consists of all information related to the Docker image as well as the Docker-compose file of your app. Also, it defines the app version.
You create an app version with the following command:
$ iectl publisher standalone-app version create \
--appname "my cool app" \ # You have to select a previously created application available within your workspace
--changelogs "initial release" \
--yamlpath "/path/to/folder/with/docker-compose.yaml" \ # path to your docker compose yaml file
--versionnumber "1.0.0" \ # This version must be conformant to the semantic versioning specification
--redirectsection "my service" \ # This requires the service name within docker-compose which contains the container that shall be exposed
--redirecttype "FromBoxSpecificPort" \ # redirecttype: Either FromBoxSpecificPort for direct port exposure or FromBoxReverseProxy for reverse proxy exposure
--redirecturl "8080" \ # redirecturl: The port which shall be exposed from your container
--restredirecturl "" \ # restredirecturl: This path will be used upon redirect to your application
With the provided settings, port 8080
of the "my service" service will be exposed. The port will be exposed directly, either with HTTP or HTTPS depending on your app.
This will lead to the following exposed URL: http or https://{industrial-edge-device-ip}:{random port}
NOTICE
If your application does not have any interface then use these redirect type.
--redirectsection "" \
--redirecttype "ExternalLink" \
--redirecturl "" \
Export App¶
Exporting an app finally creates the app package with all necessary information including deployment options. Instead of using the app, an explicit app version will be used.
You can export the app version with the following command:
$ iectl publisher standalone-app version export \
--appname "my cool app" \
--exportpath /path/for/app/file \
--versionnumber "1.0.0" \