Skip to content
This repository has been archived by the owner on Jun 13, 2021. It is now read-only.

Latest commit

 

History

History

specification

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Docker App Package Specification

This section describes all the requirements for interoperability.

YAML Documents

A Docker App Package is a set of 3 YAML documents:

  • metadata
  • docker-compose
  • parameters

These documents can be split in 3 different files or merged into one YAML file, using the multi document YAML feature. The order of the documents in a multi-documents YAML is strict:

  1. metadata
  2. docker-compose
  3. parameters

metadata.yml

metadata.yml defines some informations to describe the application in a standard YAML file. See JSON Schemas for validation.

docker-compose.yml

docker-compose.yml is a standard Compose file with variable replacement. Compose minimum version is v3.2, see JSON Schemas for validation.

parameters.yml

parameters.yml is a simple Key-Value file used to replace the variables defined in the docker-compose file. As it is an open document, there is no schema for this one.

Validation

Use the validate command:

Checks the rendered application is syntactically correct

Options:
  -f, --parameters-file stringArray   Override with parameters from file
  -s, --set stringArray               Override parameters values

Here is an example:

# Init an empty docker application package, with an invalid mail for a maintainer
$ docker-app init my-app --maintainer "name:invalid#mail.com"
# Try to validate the application package
$ docker-app validate my-app
Error: failed to validate metadata:
- maintainers.0.email: Does not match format 'email'

# Fix the metadata file
$ vi my-app.dockerapp/metadata.yml
# And re-try validation
$ docker-app validate my-app
$ echo $?
0