The execution environment is the environment in which an app runs remotely. It is characterized by features such as:
- The runtime.
- The execution class.
The execution environment is specified in part by the app manifest. All applications that run on the Nextmv Platform must contain this file in the root of the project.
App manifest
An application that runs on the Nextmv Platform must contain a file named app.yaml
which is known as the app manifest. This file is used to specify the execution environment for the app. These are the attributes of the app manifest:
type
(mandatory): the language type to use for the app.go
for Gopython
for Pythonjava
for Java
runtime
(mandatory): the runtime to use for the app.files
(mandatory): the files to include in the app. Globbing is supported so you may specify individual files or whole directories. Include the entrypoint of the app here (see below). Some examples of supported glob patterns:**/*.py
(all Python files recursively),!**/*.pyc
(exclude all Python compiled files),app/**/*.py
(all Python files in theapp
directory). Patterns are applied in order as they are defined.pre-push
(optional): a command to run before the app is pushed to the Nextmv Cloud. This command can be used to compile a binary, run tests or similar tasks. The command will be executed via the shell (i.e.,bash -c
on Linux & macOS orcmd /c
on Windows). The command must exit with a status of0
to continue the push process. This command is executed just before the app gets bundled and pushed (after thebuild
command).build
(optional): contains further build-specific attributes.command
(optional): the command to run to build the app. This command will be executed without a shell (i.e., directly). The command must exit with a status of0
to continue the push process. This command is executed prior to thepre-push
command.environment
(optional): environment variables to set when running the build command given as key-value pairs. E.g.GOOS: linux
.
python
(optional, only for Python apps): contains further Python-specific attributes.pip-requirements
(optional): path to arequirements.txt
file containing (additional) Python dependencies that will be bundled with the app.
You can port any custom app into the Nextmv Platform. You just need the app.yaml
manifest in the root of the project with the appropriate attributes. The entrypoint of the app should be:
main
for Gomain.py
for Pythonmain.jar
for Java
Find basic examples of app.yaml
manifests for different languages below.
Furthermore, there are various examples of manifests in context of complete basic apps from our templates and more complex apps from our community apps for all supported languages. Find the manifests themselves as a reference below.
go
apps.
python
apps.
java
apps.