Application image format
abcdesktop.io uses OCI container image format and add some labels to describe the application. Labels add metadata to the container image.
Requirements
- A running container enegine (like dockerd)
- An access to the docker public registry
Labels
Docker images applications for abcdesktop use docker's LABELS as metadata. To select only abcdesktop applications from standard docker images, all abcdesktop's applications must have a label 'oc.type' set to the value 'app'.
LABEL oc.type=app
Label descriptions
Label name | Type | Description | Sample |
---|---|---|---|
oc.icon |
string | icon filename use by the web interface for the application, MUST suffix in .svg format | writer.svg |
oc.icondata |
string | icon file SVG data uuencoded | PD94b...C9zdmc+Cg== |
oc.keyword |
string | keywords use by the web application search engine separated by comma(,) | firefox,mozilla,web,internet |
oc.desktopfile |
string | .desktop gnome file name | /usr/share/applications/firefox.desktop |
oc.cat |
string | category use by the web application store, choose one value of the default list [ 'office', 'games', 'graphics', 'development', 'utilities', 'education' ] |
office |
oc.launch |
string | X11 Windows Class name. It MUST be unique use the command 'wmctrl -lx' to can the right name | |
oc.template |
string | Template name to use FROM in the DockerFile | oc.template.gtk.firefox |
oc.path |
string | Path to the application binary | /usr/bin/firefox |
oc.args |
string | arguments added to the command | --open |
oc.name |
string | Name of the application | Firefox |
oc.displayname |
string | Display Name show by Web interface | Firefox |
oc.type |
string | Always set to the value 'app' | app |
oc.mimetype |
string | MimeType supported by the application separated by semicolon(;) | text/html;text/xml;application/xml;application/rss+xml;video/webm |
oc.showinview |
string | Set to the dock to add this app in dock | dock |
oc.fileextensions |
string | Supported extensions file, separated by semicolon(;) | htm;html;xml;gif |
oc.legacyfileextensions |
string | Legacy file extensions, separated by semicolon(;) | htm;html;xml |
oc.host_config |
dict | dictionary of resources (see resources details) | { 'shm_size': '1g' } |
Example for Firefox application
LABEL oc.icon="firefox.svg"
LABEL oc.keyword="firefox,mozilla,internet"
LABEL oc.cat="office"
LABEL oc.launch="Navigator.Firefox"
LABEL oc.template="oc.template.gtk.firefox"
LABEL oc.name="Firefox"
LABEL oc.displayname="Firefox"
LABEL oc.path="/usr/bin/firefox"
LABEL oc.type=app
LABEL oc.showinview="dock"
LABEL oc.mimetype="text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml"
LABEL oc.fileextensions="html;xml;gif"
LABEL oc.legacyfileextensions="html;xml"
host_config resource description
host_config
resource description allows to change the running context for docker application.
host_config
is a dictionary and uses the same format in applist.json
file and od.config
file.
For example you can set low cpu and memory values to an application like the great X11 xeyes.
{
"mem_limit": "32M",
"cpu_period": 50000,
"cpu_quota": 50000,
"pid_mode": false,
"network_mode": "none"
}
Read the dedicated chapter for resource description, to get more informations on host_config
Inspect an abcdesktop docker images
To download an abcdesktop docker image, run the command
docker pull abcdesktopio/firefox.d
To inspect the labels in the docker image, run docker inspect
docker inspect abcdesktopio/firefox.d:latest
Read the labels section :
"Labels": {
"architecture": "x86_64",
"oc.cat": "office",
"oc.desktopfile": "firefox.desktop",
"oc.displayname": "Firefox",
"oc.fileextensions": "htm;html;xml;gif",
"oc.icon": "firefox.svg",
"oc.icondata": "PD94b.. CUT HERE ...C9zdmc+Cg==",
"oc.keyword": "firefox,mozilla,web,internet",
"oc.launch": "Navigator.Firefox",
"oc.legacyfileextensions": "htm;html;xml",
"oc.mimetype": "text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;video/webm;application/x-xpinstall;",
"oc.name": "Firefox",
"oc.path": "/usr/bin/firefox",
"oc.showinview": "dock",
"oc.template": "oc.template.gtk.firefox",
"oc.type": "app",
"oc.usedefaultapplication": "true",
"release": "5",
"vcs-ref": "master",
"vcs-type": "git",
"version": "1.2"
}
The inheritance of the images
All abcdesktop applications use by default the oc.template.gtk images name.
The inheritance of the classes.
By default, oc.templace.gtk
is the main image for all applications.
For example oc.template.gtk.firefox
use the oc.template.gtk
image. oc.template.gtk.firefox.acme
use the oc.template.gtk.firefox
.
- The
oc.template.gtk.firefox
contains the Mozilla Firefox application. - The
oc.template.gtk.firefox.acme
may contain custom set for Mozilla Firefox application, like Root CA, proxy values or policy.json files for the acme.
+------------------------------+
|oc.template.gtk.firefox.acme |
+---------------+--------------+
|
|
+---------------+--------------+
|oc.template.gtk.firefox |
+---------------+--------------+
|
|
+---------------+--------------+
|oc.template.gtk |
+---------------+--------------+